使用ajaxSubmit自动填充表单数据时,当前html页面中出现相同name的input。
如
<form id=@H_502_10@"formId1">
<input name=@H_502_10@"taskId"/>
</form>
......
<form id=@H_502_10@"formId2">
<input name=@H_502_10@"taskId"/>
</form>
那么,jqueryform无法获取到该input数据值。
var params = {};//jqueryform会自动填充此参数
$("#formId1").ajaxSubmit({
"url": "http://xxxxxx","data": params,"type": 'POST',"dataType": 'json',"success": function (data) {
},"error": function (xhr,status,error) {
}
);
//后台服务器找不到taskId参数
由此可见,jqueryform自动填充参数时,是将整个页面的input全部填充,而不只是填充该form下的input。
解决办法:
目前没想到什么好办法,只是将名称改为不一样就行。
给两个相同name的input设置不同的id,然后在formId1提交前:
document.getElementById("taskId_1").setAttribute("name","taskId");
document.getElementById("taskId_2").removeAttribute("name");
在formId2提交前:
document.getElementById("taskId_2").setAttribute("name","taskId");
document.getElementById("taskId_1").removeAttribute("name");