【发布时间】:2014-04-23 08:35:37
【问题描述】:
HTML 代码:
JS代码:
$('.normal_button').click(function(e){ 控制台.log(e); });当我单击按钮时,该功能运行良好
但是,当我在输入文本中按 enter 时,它也会触发按钮单击功能。
我通过将按钮元素更改为输入按钮解决了这个问题
但我仍然对原因感到好奇
是某种 jquery 错误还是有什么问题?
【问题讨论】:
HTML 代码:
JS代码:
$('.normal_button').click(function(e){ 控制台.log(e); });当我单击按钮时,该功能运行良好
但是,当我在输入文本中按 enter 时,它也会触发按钮单击功能。
我通过将按钮元素更改为输入按钮解决了这个问题
但我仍然对原因感到好奇
是某种 jquery 错误还是有什么问题?
【问题讨论】:
默认情况下,除非您为<button> 元素指定任何操作,否则它将像submit 按钮一样工作。基本上submit 按钮会在您从其父窗体的输入控件中按下回车键时触发
【讨论】:
默认情况下,表单内的按钮类似于提交输入。所以当你按回车时,它会触发该功能。
【讨论】:
<button> 的默认行为是提交。如果您添加type="button",它将充当普通按钮。
【讨论】:
这不是错误。它是输入字段在输入时的默认行为。或者单击表单中 type=submit 或输入 type=image 的按钮元素。
如果您希望避免在输入字段上按 Enter 时提交表单。试试下面的代码:
<form>
<input name="ip" type="text" class="dont_submit" id="normal_input" />
<input type="button" class="normal_button" value="button"/>
</form>
<script>
$('.dont_submit').keydown(function(ev){
console.log(ev.which);
if (ev.which === 13) {
ev.preventDefault();
}
});
</script>
【讨论】: