2012-01-20 16 views
0

フォームに問題があります - パスワードフィールドを選択できないようです。それに到達する唯一の方法は、Tabキーを使用してフィールドに移動することです。これはWebkitブラウザにのみ影響します。Webkit - フィールドを選択できません

これは、フォームのHTML

public function form() 
{ 
    global $ACL_LANG; 
    $htmlForm = '<form id="frmlogin"><fieldset><label><dl><dt>'; 
    switch (LOGIN_METHOD) { 
     case 'both' : 
      $htmlForm .= $ACL_LANG ['USERNAME'] . '/' . $ACL_LANG ['EMAIL']; 
      break; 
     case 'email' : 
      $htmlForm .= $ACL_LANG ['EMAIL']; 
      break; 
     default : 
      $htmlForm .= $ACL_LANG ['USERNAME']; 
      break; 
    } 
    $htmlForm .= '</label></dt>' . '<dd><input type="text" name="u" id="u" class="large" /></dd><dt>' . '<label>' . $ACL_LANG ['PASSWORD'] . '</label></dt>' . '<dd><input type="password" name="p" id="p" class="large" /></dd>' . '<input type="hidden" name="uri" id="uri" value="' . $_SERVER['REQUEST_URI'] . '" /></dl></fieldset><button type="submit" style="float:right;">Log in</button></form>'; 
    return $htmlForm; 
} 

これにはJavaScriptをページ

$.getJSON(postFile, function(data) { 

    if (data.status == true) { 
     // status is authorized 
     if (autoRedir) { 
      $(authentication).hide(); 
      $(authenticating).hide().html('Authentication success.').fadeIn('fast', function() { 
       window.location = data.url; 
      }); 
     } else { 
      $(waitId).fadeOut('slow', 
       function() { 
        $(wrapperId).html(data.message).slideDown(); 
       }).html(); 
     } 
    } else { 
     // show form 
     $(wrapperId).html(data.message).fadeIn('0', function() { 
      // hide message 
      $(waitId).fadeOut('fast', 
       function() { 

        //*/ submit handler 
        $("#frmlogin").submit(function() { 
         // loading 
         $(waitId).hide(); 
         $(notificationerror).hide(); 
         $(notification).hide(); 
         $(authentication).fadeIn(); 
         $(wrapperId).hide(); 

         var _u = $(userId).val(); // form user 
         var _p = $(passId).val(); // form id 
         var _uri = $(uri).val(); // form id 

         //@ valid user (modify as needed) 
         if (_u.length < 4) { 
          $(authentication).hide(); 
          $(notificationerror).html(jsErrMsg).fadeIn('fast', function() { 
          }); 
          $(wrapperId).show(); 
         } 
         else { 
          //@ valid password (modify as needed) 
          if (_p.length < 4) { 
           $(authentication).hide(); 
           $(waitId).html(notificationerror).fadeIn('fast', function() { 
            $(passId).focus(); 
           }); 
          } 
          else { 
           $.post(postFile, { u: _u, p: _p, uri: _uri }, function(data) { 
             if (data.status == true) { 
              if (autoRedir) { 
               $(authentication).html('Setting session.').fadeIn(); 
               setTimeout("",2000); 
               $(authentication).html('Authentication success.').fadeIn('fast', function() { 
                window.location = data.url; 
               }); 
              } else { 
               $(waitId).fadeOut('slow', 
                function() { 
                 $(wrapperId).slideUp('slow', function() { 
                  $(this).html(data.message).slideDown(); 
                 }); 
                }).html(); 
              } 
             } else { 
              $(wrapperId).show(); 
              $(notification).show(); 
              $(authentication).hide(); 
              $(notificationerror).html(data.message).fadeIn(function() { 
              }); 
             } 
            } 
            , 'json'); 
          } 
         } 
         return false; 
        }); 
        //*/ 
       }).html(); 
     }); 

    } 

}); 

任意のアイデアを支配しているのですか?

+0

このようなフォームは作成しないでください。テンプレートを使用します。 –

+0

'setTimeout(" "、2000)'を呼び出すと何も役に立ちません。 – Pointy

+0

@Pointy、私はそれを削除しました。 – bear

答えて

0

あなたはフィールドにタブすることはできますが、それをクリックすることができない場合は、オーバーレイするものがあります。

Google Chromeでサイトを開くと、入力ボックスにアクセスしようとしている場所を右クリックしてブロックされます。 'Inspect Element'を選択すると、マウスが右クリックした要素が強調表示されます。

また、インスペクタの要素の上にマウスを置くと、ページ上で強調表示されます。これは、それが何を妨害しているかを明らかにするかもしれない

関連する問題