LLO, 我有一个有两个提交按钮的表单:一个接受,一个取消:
<p>
<input type="submit" name="accio" value="accept" class="default" />
<input type="submit" name="accio" value="cancel" class="cancel" />
</p>
我想使用键盘使用jQuery提交表单:
$(document).ready(function() {
$("input[type=text]").focus();
$("input[type=text]").keydown(function(e) {
if ((e.keycode && e.keycode == 13) || (e.which && e.which == 13)) {
$(".default").submit();
}
if ((e.keycode && e.keycode == 27) || (e.which && e.which == 27)) {
$(".cancel").submit();
}
});
});
我希望参数accio包含接受或取消,具体取决于按下的键(我在服务器中处理)...它适用于Firefox,但不适用于IE或Chrome。哪里是我的错?
更新
关注@ Sime,我得到了以下代码:
$(document).ready(function() {
$("input:text").focus();
$("input:text").keydown(function(e) {
if (e.which == 13) {
$("#default").submit();
}
if (e.which == 27) {
$("#cancel").submit();
}
});
});
但它仍然无效......我认为这与我提交表单的方式有关...我不能在“input:submit”上调用submit方法,并期望将正确的值传递给控制器?
答案 0 :(得分:3)
试试这个:
$("input[type=text]").keydown(function(e) {
if ((e.keycode && e.keycode == 13) || (e.which && e.which == 13)) {
$(".default")[0].click();
}
if ((e.keycode && e.keycode == 27) || (e.which && e.which == 27)) {
$(".cancel")[0].click();
}
});
你可以设法更好地识别按钮。
$("p input.cancel")
<强>更新强>
$(document).ready(function() {
$("input:text").focus();
$("input:text").keydown(function(e) {
if (e.which == 13) {
$("#default")[0].click();
}
if (e.which == 27) {
$("#cancel")[0].click();
}
});
});
更新II
这个代码功能在IE6 +中很好,校正在stopPropagation
$('input[type="text"]').keydown(function(ev) {
if (ev.which == 13 || ev.which == 27) {
ev.stopPropagation();
if (ev.which == 13)
$("#default")[0].click();
if (ev.which == 27)
$("#cancel")[0].click();
return false
}
});
答案 1 :(得分:0)
尝试以下方法:
$( '#myForm' ).submit();
$( '#mySubmitButton' ).click();