使用 JQUERY 更改输入名称
我试图根据
的列表索引更改所有输入名称,但看起来它根本没有改变。$('.test').click(function() {
for(var i=0;i<$("li.songs").length;i++)
{
var ob = $("li.songs").eq(i).clone();
ob.find('input').each(function()
{
this.name = this.name+i;
alert(this.name); //just checking if does it change
});
}
});
现在,警报显示了我想要的正确名称,但是当我检查元素并尝试提交表单并显示所有 POST 值时,名称没有变化。
更改前的预期输出示例:
<li class="songs"><input type="text" name="song" /></li>
<li class="songs"><input type="text" name="song" /></li>
<li class="songs"><input type="text" name="song" /></li>
更改后:
<li class="songs"><input type="text" name="song1" /></li>
<li class="songs"><input type="text" name="song2" /></li>
<li class="songs"><input type="text" name="song3" /></li>
注意:我不希望名为 Song 的输入是一个 ARRAY。
I'm trying to change all the input name based on the list index of <li>
but it seems like it's not changing at all.
$('.test').click(function() {
for(var i=0;i<$("li.songs").length;i++)
{
var ob = $("li.songs").eq(i).clone();
ob.find('input').each(function()
{
this.name = this.name+i;
alert(this.name); //just checking if does it change
});
}
});
Now, the alert displays the right name I want, BUT no changes on the name when I inspect the element AND try to submit the form and display all the POST values.
Example expected output before changing:
<li class="songs"><input type="text" name="song" /></li>
<li class="songs"><input type="text" name="song" /></li>
<li class="songs"><input type="text" name="song" /></li>
After changing:
<li class="songs"><input type="text" name="song1" /></li>
<li class="songs"><input type="text" name="song2" /></li>
<li class="songs"><input type="text" name="song3" /></li>
NOTE: I DO NOT WANT the input named song to be an ARRAY.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您正在克隆该对象,因此更改是针对副本而不是原始 DOM 节点进行的。
不要使用
clone()
,你会没事的。或者这样做:You are cloning the object, so the change is done to a copy rather than the original DOM node.
Don't use
clone()
and you'll be fine. Or do this: