jQuery CSS Selector过滤键盘ENTER键

时间:2013-12-02 22:44:51

标签: jquery html css

我有一个网页,我试图通过使用我在这里看到的jQuery技巧来捕获10和{{},从而在页面的某个部分中抑制 ENTER 键。 1}}密钥代码。

13

我不知道这个jQuery技巧被调用了什么,所以我不知道如何查看它以确保我做得对。

我不想压制 ALL ENTER 按键,因为它们用于触发我们的文件搜索员工搜索功能:

<head>
  <title>Test Script</title>
  <script src="Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
  <script type="text/javascript">
  $('container content input').keypress(function (e) {
    if (e.which == 10 || e.which == 13) {
      alert('Form Submission needs to occur using the Submit button.');
      e.preventDefault(); // should I call preventDefault() or return false?
      //return false;
    }
  });
  </script>
</head>

从我的jQuery语句中可以看出,我正在尝试使用 <body> <div class="container"> <div class="header"> <div class="FileSearch"> <!-- Other HTML here --> </div> </div> <div class="content"> <form id="testInput" action="HTMLTestPage1.html" method="post"> <input type="text" name="text1" /> <input type="text" name="text2" /> <input type="text" name="text3" /> <input type="submit" name="Submit" value="Submit" /> </form> </div> <div class="footer"> <div class="EmployeeSearch"> <!-- Other HTML here --> </div> </div> </div> </body> 值深入到表单。

但是,它看起来效果不佳。每当我将焦点放在其中一个 控件上时按 ENTER 键,表单就会被提交。

我希望系统会弹出警告对话框!

有没有办法为jQuery启用断点,这样一个人可以进入正在发生的事情?

1 个答案:

答案 0 :(得分:3)

你的代码看起来非常好。

缺少的部分是右选择器

$('container content input')

应该是

$('.container .content input')

您正在根据元素的class属性访问输入。

类选择器必须以.为前缀。

如果不是,则会将其视为标记。

  

我应该调用preventDefault()还是返回false?

preventDefault()会阻止默认操作。

返回false - 相当于 e.preventdefault() e.stopPropagation()

要阻止表单的提交行为,请删除按钮的type =“submit”,然后单击按钮提交表单。

$('.container .content input').keyup(function (e) {
    if (e.which == 10 || e.which == 13) {
        alert('Form Submission needs to occur using the Submit button.');
        e.preventDefault();
    }
});

$('input[name="Submit"]').click(function (e) {
    $('#testInput').submit();
});

<强> Check Fiddle