2012-01-20 55 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中打開該網站,請右鍵點擊您嘗試訪問輸入框但被阻止的位置。選擇'檢查元素',它應該突出顯示鼠標右鍵單擊的元素。

您也可以將鼠標懸停在檢查器中的元素上以在頁面上突出顯示它們。這可能會揭示阻礙它的因素。