我有一个只有一个submit
输入,但也有各种button
元素的HTML表单。当用户按下'enter‘键时,我本以为它会提交表单,但(至少在Chrome15中)我发现它触发了第一个button
(因为它在HTML中比submit
输入发生得更早)。
我知道通常不能强迫浏览器偏爱特定的submit
输入,但我真的认为浏览器会偏爱submit
输入而不是button
元素。我是否可以对HTML做一些小的调整来实现这项工作,或者我将不得不接受某种Javascript方法?
下面是HTML的粗略模型:
<form action="form.php" method="POST">
<input type="text" name="field1"/>
<button onclick="return myFunc1()">Button 1</button>
<input type="submit" name="go" value="Submit"/>
</form>
发布于 2013-05-09 21:22:04
你不需要JavaScript来选择默认的提交按钮或输入。你只需要用type="submit"
标记它,其他的按钮用type="button"
标记它们。在您的示例中:
<button type="button" onclick="return myFunc1()">Button 1</button>
<input type="submit" name="go" value="Submit"/>
发布于 2011-11-28 18:33:00
您可以使用jQuery:
$(function() {
$("form input").keypress(function (e) {
if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
$('button[type=submit] .default').click();
return false;
} else {
return true;
}
});
});
发布于 2011-11-28 18:33:17
试试这个,如果按了enter键,你可以像这样捕获它例如,前几天我开发了一个答案html button specify selected,看看这是否有帮助。
指定表单名称,例如yourFormName
,然后您应该能够提交表单,而无需关注表单。
document.onkeypress = keyPress;
function keyPress(e){
var x = e || window.event;
var key = (x.keyCode || x.which);
if(key == 13 || key == 3){
// myFunc1();
document.yourFormName.submit();
}
}
https://stackoverflow.com/questions/8294465
复制相似问题