我有一页有很多小表格的。我想动态分配一个热键来提交每个表单。代码看起来像:
<form:form id="formCtrlr" action="review.html">
<input name="id" type="hidden" value=""/>
</form:form>
<form:form id="formCtrls" action="save.html">
<input name="id" type="hidden" value=""/>
</form:form>其他小形式的...lots,每一个都有一个与热键相关的唯一id .
jQuery
$('[id^="formCtrl"]').each(function() {
var me = $(this);
var myId = me.attr("id");
var keyBinding = myId.replace("form", "").replace(/(.{4})/g,"$1+");
$(document).bind('keydown', keyBinding, function (evt){
evt.stopPropagation();
evt.preventDefault();
$("#"+myId).submit();
return false;
});
});很简单对吧?但是页面上也有几个文本输入,如果用户正在输入其中一个字段并点击其中一个热键,则不提交相应的表单,实际上,如果热键与浏览器匹配,如Ctrl-s,则显示保存对话框。知道我怎样才能阻止这一切发生吗?
发布于 2011-09-02 14:48:45
我猜想热键事件正在被输入捕获,然后被阻塞。尝试将事件直接添加到输入中,而不是添加到表单中。
https://stackoverflow.com/questions/7284660
复制相似问题