我有一个带有几个提交按钮的表单。我希望我的最后一个按钮处理提交,而不是HTML5 spec'ed第一个按钮。
我无法在此时更改html并且相当确定这需要JS。但是当我给它一个镜头时,我遇到了令人讨厌的循环或死代码,试图阻止默认行为然后解雇我的其他按钮。
以前有人这样做过吗?如果需要,jQuery就在页面上。
谢谢, 丹尼斯
答案 0 :(得分:3)
既然你提到了jQuery:)
如果您只想在用户按下回车键时提交表单,那么
$(function() {
$('body').keypress(function(e) {
if (e.which == 13) {
e.preventDefault();
$('#myForm').submit();
}
});
});
但是,如果您有不同的行为/形式,具体取决于单击了哪个按钮,并且您希望输入键触发最后一个按钮的单击事件,那么
$(function() {
$('body').keypress(function(e) {
if (e.which == 13) {
e.preventDefault();
$('input[type="submit"]:last').click();
}
});
});
答案 1 :(得分:1)
您只需将input
元素的type
属性更改为button
,而不是希望它提交表单。 (我知道你说你不能真正改变HTML,但这是 最好的方式)
<input type="button" name="mybutton" class="submit-button" value="I wont submit!" />
jQuery代码:
$('.submit-button').click(function() {
$('#secret-value-field').val($(this).val());
$(this).parents('form').submit();
});
或类似的东西。