Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery,我们真的可以捕捉到提交按钮';s事件通过“或”;点击";或;提交;?_Jquery - Fatal编程技术网

使用jQuery,我们真的可以捕捉到提交按钮';s事件通过“或”;点击";或;提交;?

使用jQuery,我们真的可以捕捉到提交按钮';s事件通过“或”;点击";或;提交;?,jquery,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 } }); 或

在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
      }
    });
更新:实际上,
点击
可以防止使用空关键字进行搜索,但是
提交
并不能阻止。为什么呢


更新2:我很惊讶,在Firefox或Chrome中,定义
点击
处理程序实际上可以在不输入任何内容的情况下按Enter键。因此,看起来Firefox和Chrome都在构建这种智能。如果我使用IE8,那么它将继续使用空字符串搜索(请求服务器)

submit
是您应该使用的<代码>单击
仅当您单击按钮时才会触发。但是,还有其他提交表单的方法(例如,从其中一个表单字段按enter)

有关返回
false
和防止默认事件的更多信息,请参见以下内容:


从您的更新中,
submit
应该绑定到表单,而不是submit按钮。

submit
是您应该使用的按钮<代码>单击
仅当您单击按钮时才会触发。但是,还有其他提交表单的方法(例如,从其中一个表单字段按enter)

有关返回
false
和防止默认事件的更多信息,请参见以下内容:


在您的更新中,
submit
应该绑定到表单,而不是submit按钮。

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

您正在比较两个元素的两个不同事件。单击事件用于按钮,提交事件用于表单。单击内部返回false会阻止表单提交的原因是表单从未收到单击事件的通知。不过,您可能希望使用submit。

乍一看,您似乎将提交处理程序设置在了错误的元素上

当像这样捕获表单提交时,通常最好捕获实际的提交事件,而不是提交按钮的单击事件,因为并非所有浏览器都在用户按Enter键时模拟单击事件

但是,提交事件仅适用于表单本身,而不适用于提交按钮。我不确定您的HTML是如何设置的,但下面是我要做的,希望您可以很容易地将其适应您的情况

<!-- HTML -->
<form id="search-box" action="/search">
    <label>Search: <input name="q"></label>
    <button type="submit">Go</button>
</form>

乍一看,您似乎将提交处理程序设置在了错误的元素上

当像这样捕获表单提交时,通常最好捕获实际的提交事件,而不是提交按钮的单击事件,因为并非所有浏览器都在用户按Enter键时模拟单击事件

但是,提交事件仅适用于表单本身,而不适用于提交按钮。我不确定您的HTML是如何设置的,但下面是我要做的,希望您可以很容易地将其适应您的情况

<!-- HTML -->
<form id="search-box" action="/search">
    <label>Search: <input name="q"></label>
    <button type="submit">Go</button>
</form>

这是公认的答案,因为它解释了阻止单击的默认操作也阻止提交操作的原因。(因为它“好像”从未被点击过)这是公认的答案,因为它解释了为什么阻止点击的默认操作也会阻止提交操作。(因为它“好像”从未被点击过)+10用于解释Firefox对Enter键模拟的点击,Chrome+10用于解释Firefox和Chrome对Enter键模拟的点击