我有一个页面上有多个小表格。每个表单都有一个输入字段,该字段具有一个 onchange 函数,该函数会将其表单提交到返回无数据状态的 url。
一切正常,一个接一个地提交表单,直到用户单击一个只有一个提交按钮的小表单。此点击有效,但放弃前一个字段中的更改导致其 onchange 未触发更改功能底部的单击失败(仍在尝试了解萤火虫跟踪)。
这是怎么回事?我的结构有修复吗?
更新:
首先,我尝试简单地延迟提交的操作,但没有运气。
我已经隐藏并在“事件”链中添加了一个,以便焦点在真正的提交尝试发生之前有一个休息的地方——下面的代码已经更新。所以现在的问题变成了:
这是尽可能简单吗?
脚本:
$(function() {
$('input,select').change(changed);
});
function changed(){
...
$(this).parents('form').find(':submit').click();
}
function doSubmit(elt, id)
{
$(elt).focus();
setTimeout(function(){
$(id).click();
}, 400);
}
一种可能的小形式:
<form class="clean" method="POST" action="QuoteProApp.php">
<input type="submit" value="field" name="btn_update" style="display: none;">
<input type="hidden" value="000242" name="quote_id">
<input type="text" maxlength="15" size="3" value="" name="q[cost][4][1][unit]">
</form>
有问题的点击进入这种形式:
<form class="clean" method="POST" action="QuoteProApp.php">
<input type="hidden" value="000242" name="quote_id">
<input type='button' name='btn_close' value='Close' onclick='doSubmit(this,"#CLOSE");'>
<input id='CLOSE' type='submit' name='btn_close' value='Close' style='display:none;'>
</form>