2012-02-05 32 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; 
    }); 
}); 
相关问题