使用ajaxSubmit自动填充数据时,如果input的name重名则无法填充该input数据值

前端之家收集整理的这篇文章主要介绍了使用ajaxSubmit自动填充数据时,如果input的name重名则无法填充该input数据值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

使用ajaxSubmit自动填充表单数据时,当前html页面中出现相同name的input。

<form id="formId1">
<input name="taskId"/>
</form>
......
<form id="formId2">
<input name="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");

猜你在找的Ajax相关文章