jquery - 使用 jQuery,我们是否可以通过 "click"或 "submit"捕获提交按钮的事件?

标签 jquery

在 jQuery 中,对于表单提交按钮或图像,我们似乎可以使用其中之一

    $('#search-box-submit').click(function() {
      if ($('#search-box-submit').val().match(/^\s*$/)) {
        alert("Please enter search keywords");
        return false;  // stop the search request
      }
    });

或者我们可以使用提交:

    $('#search-box-submit').submit(function() {
      if ($('#search-box-submit').val().match(/^\s*$/)) {
        alert("Please enter search keywords");
        return false;  // stop the search request
      }
    });

更新:实际上,click 可以防止使用空关键字进行搜索,但 submit 并不能防止这种情况。这是为什么?

更新 2: 我很惊讶在 Firefox 或 Chrome 中,定义 click 处理程序实际上可以在不输入任何内容的情况下按 Enter出色地。所以看起来 Firefox 和 Chrome 内置了这种智能。如果我使用 IE 8,那么它将继续使用空字符串进行搜索(向服务器请求)

最佳答案

您正在比较两个元素的两个不同事件。单击事件用于按钮,提交事件用于表单。在单击内部返回 false 会阻止表单提交的原因是表单永远不会收到有关单击事件的通知。不过,您需要使用提交。

关于jquery - 使用 jQuery,我们是否可以通过 "click"或 "submit"捕获提交按钮的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5751744/

相关文章:

javascript - jQuery在循环填充的其他元素中获取按钮的ID

javascript - Web 表单中的 Jquery 对话框

jquery - 代码在函数内部时不会运行

javascript - 如何加速淡入/淡出

jQuery DataTables - 无法重新初始化 DataTable

javascript - 只有一个列表元素在页面加载时排在第一位

javascript - jQuery 在网站开头隐藏 div

javascript - jQuery sortable 获得 2 个被交换的元素

javascript - jQuery 在 innerHTML 声明之前设置闪烁文本

javascript - 解决 typescript 错误的最佳方法 - 类型上不存在属性