单击表单中的输入单选按钮时,我需要提交“表单”。
如果我直接从回调中调用提交,则新的单选按钮值未注册,提交将向下发送旧的单选按钮值。
为了确保在输入字段中注册了新的单选复选框值,我在每个下面的事件回调中执行'setTimeout'。
radioButtonClick (event) {
// do work...
window.setTimeout(
function () {
$('#submitBtn').trigger( "click");
}, 10
);
return true;
}
这是有效的,收音机的新值在输入元素上注册,并在表单的帖子字段中显示。
'10'毫秒的超时值适用于除IE以外的所有浏览器,IE只能使用更高的超时值 - 类似于2000毫秒似乎可以工作(即使1000毫秒似乎也无法正常工作次)。我正在使用IE10进行此测试。
我的印象是,只要我们从回调中返回,浏览器中的jquery将在input元素中注册新值,因此timeout参数不是重要的(甚至1毫秒的值也适用于chrome和ff)。
我显然遗漏了一些东西,我们非常感谢任何帮助。此外,如果有人更好地了解如何确保在调用submit(而不是使用setTimeout)之前在输入元素中保持单选按钮值,那么这也是非常受欢迎的。