【发布时间】:2017-06-20 05:17:13
【问题描述】:
我有一个这样的 html 表单:
<form name="f1">
<center>
<strong>Search VMs:</strong>
<input id='vms' name="word" type="text" size="50" placeholder="Name or IP, space delimited, partial name OK." autofocus autocomplete="off" pattern=".{3,}" required title="3 chars minimum" /> in
<select name="vc" id='whichvc'>
<option value="all" selected="selected">all VCs</option>
</select>
<input type="checkbox" id="check4detail" name="detail">Include details
<input name='searchbutton' value="Search VMs" type="button" onclick='xmlhttpPost("/cgi-bin/search-vm.pl")' />
<input value="Clear" type="button" onclick="clearBox('result')" />
</center>
</p>
<div id="loading"></div>
<div id="result"></div>
</form>
如您所见,有一个文本输入字段和一些其他按钮,其中一个有一个与之关联的 onclick() 侦听器。当用户输入文本并按回车时,如何触发该按钮上的 onclick 事件?
从论坛尝试了这个解决方案,但不知何故不起作用:
$('#vms').keypress(function(event){
if (event.which === 13){
$('#searchbutton').click();}
});
顺便说一句,当我在字段中输入文本并单击搜索按钮时,它工作得很好。但是输入文本并按 Enter 不会以某种方式触发搜索事件。
【问题讨论】:
-
我认为 jQuery 事件不会触发非 jquery 侦听器,是吗?
-
@mhodges 如果您的意思是
$('#searchbutton').click();触发onclick属性中的函数,它确实会触发。简单演示:jsfiddle.net/v11y6kab。trigger的文档中的详细信息。 -
您不需要在
xmlhttpPost调用之前在onclick属性中调用JavaScript:,这有点多余。只有当你有一个锚并且使用href来触发一个 JavaScript 函数时,你才需要它。 -
@MikeMcCaughan 很公平,我想我记得必须创建一个本地事件才能正确触发,但我不记得它是什么。现在我想起来了,我认为它与
addEventListener("change")不会被$.change()触发,但<DOMELEMENT onchange="myFunction()"/>确实与$.change()一起使用... /shrug
标签: javascript jquery html event-listener