我有这个代码更改输入字段名称属性值,在除IE8,IE7和IE6之外的所有主流浏览器中都很有效。对于IE,名称只保留name="participant_name[{i}]"
,应为name="participant_name[1]"
。
var i = 1;
var input_name = null;
$('.dubl input').each(function () {
var new_input_name = $(this).attr('name').substring(0, $(this).attr('name').indexOf('['));
if (input_name !== new_input_name) {
input_name = new_input_name;
i = 1;
}
$(this).attr('name', input_name + '[' + i + ']');
i++;
});
HTML
<input type="text" name="participant_name[{i}]">
答案 0 :(得分:1)
实际上,在IE中也正确地更改了属性name
。但是,我认为您可能遇到的问题是,当您提交表单时,它不是更新的字段name
。
IE没有考虑name
更改,因此,在发送表单时,它仍然使用与创建表单时相同的name
。要解决此问题,您可以在更改名称属性时将其重新添加到表单/元素的DOM中。
http://jsfiddle.net/niklasvh/wbnhS/你可以在那里测试它,属性确实会改变,或者你在IE中检查DOM。
答案 1 :(得分:0)
使用.replace!
这是一个快速小提琴的例子: http://jsfiddle.net/H5fkq/
答案 2 :(得分:0)
如果这不是您项目中唯一需要在客户端进行此类替换的地方,那么可能值得查看模板库,例如jQuery Templates。