我有一个像这样的输入处理程序:
$('.submit-on-enter').keydown(function (e) {
if (e.keyCode == 13) {
var id = $(this).attr('id');
$('input[type=submit][for=' + id + ']').click();
}
});
这是一个包含多个按钮的表单。我遇到的问题是,当表单到达服务器时,第一个按钮就在那里而不是“点击”按钮。我已经验证了上面处理程序中的id是预期的id。
要清楚,我正在检查按钮服务器端是否存在name属性,以确定单击了哪个按钮。无论如何,页面上第一个按钮的名称始终存在。
有什么想法吗?
答案 0 :(得分:0)
这是解决方案,请注意事件的变化。 keydown似乎不允许在chrome中停止表单提交事件。
$('.submit-on-enter').keypress(function (e) {
if (e.keyCode == 13) {
e.preventDefault();
var id = $(this).attr('id');
var name = $('input[type=submit][for=' + id + ']').attr('name');
$('input[type=submit][for=' + id + ']').click();
}
});