2012-02-05 36 views
0

我有一個登錄表單,用戶在登錄之前必須查看一些文本。它位於一個隱藏的div中,它將在表單上的呼叫行爲的第一次點擊事件之後顯示。我禁用了輸入鍵,但我想讓用戶在顯示文本的div後使用它。這是我迄今爲止的,但結果是整個體驗的禁用輸入鍵。允許在登錄表單上按下按鍵13在特定div顯示在頁面上

$(document).ready(function() { 
    $('#textbutton').click(function() { 
     $('#textbox').toggle(); 
     $('.usernameDiv,.passwordDiv').hide(); 
     $('#textbutton').hide(); 
     $('#submitbtn').attr('target', '_parent'); 
    }); 

    $('#form').keypress(function (e) { 
     if(e.which == 13) { 
      e.preventDefault(); 
     } 

     if($('#textbox').is(':visible') 
      && ($('#form').val().length > 1)) { 
      return; 
     } 
    }); 
}); 

回答

0

這應該有效。現在,我們不是檢查輸入密鑰e.which == 13,而是檢查div是否可見。

$(document).ready(function() { 
     $('#textbutton').click(function() { 
      $('#textbox').toggle(); 
      $('.usernameDiv,.passwordDiv').hide(); 
      $('#textbutton').hide(); 
      $('#submitbtn').attr('target', '_parent'); 
     }); 
     $('#form').keypress(function (e) { 
      //If enter is pressed and the div is not visible then preventDefault 
      if (e.which == 13 && !$('#textbox').is(':visible')) { 
       e.preventDefault(); 
      } 
      if ($('#textbox').is(':visible') && ($('#form').val().length > 1)) { 
       return; 
      } 
     }); 
}); 
0

如何在可見後取消綁定?

var waitForEnter = function (event) { 
    if (event.which == 13) { 
    event.preventDefault(); 
    } 
} 

$('#form').bind('keypress', waitForEnter); 

$('#form').keypress(function() { 
    if ($('#textbox').is(':visible') { 
    $('#form').unbind('keypress', waitForEnter); 
    } 
}); 
0

發送表單的方法很少。 最好是阻止提交表單。

$(function(){ 
    $('#form').submit(function(){ 
    if(! $('#textbox').is(':visible')) 
     return false; 
    }); 
}); 
相關問題