对于每个输入,Index-Id总是具有相同的值
Index-Id always has the same value for every input
所以我已经动态创建了表单,我想获得某些输入的索引id与名称,如championSpell[]我需要知道哪一个是哪一个,所以我想到使用索引id,但它改变每个输入索引相同的值时,按下添加拼写按钮。您可以在这里测试这个问题http://89.69.172.125/test.php
$(function() {
$('body').on('click', '#addSpell',function() {
$(
'<p><select name="change[]" id="change[]" onchange="val(this)"><option value="Passive">Passive</option><option value="Q" selected>Q</option><option value="W">W</option><option value="E">E</option><option value="R">R</option></select><label for="var"><input type="text" id="championSpell[]" name="championSpell[]" data-id="" readOnly="true"><br><textarea type="text" id="p_scnt" size="20" name="p_scnt_' + i +'" value="" placeholder="Enter Description" /><select><option value="buff">Buff</option><option value="nerf">Nerf</option><option value="new">New</option><option value="change">Change</option><option value="bugfix">Bugfix</option></select></label> <a href="#" id="addGeneral">Add Change</a> <a href="#" id="remVar">Remove Spell</a></p>').appendTo($(this).next());
$('input[name="championSpell[]"]').attr('data-id', y);
y++;
return false;
});
});
不良做法
(例如,使用label作为块元素)
(使用jquery创建这样的模板文件)
(等)
(等)
问题在于没有初始化变量y
,并且最终更改了所有data-id值。试试这个更新的(更可读的)位
$(function () {
var y = 0;
$('#addSpell').on('click', function(){
$(['<p>',
'<select name="change[]" id="change[]" onchange="val(this)">',
'<option value="Passive">Passive</option>',
'<option value="Q" selected>Q</option>',
'<option value="W">W</option>',
'<option value="E">E</option>',
'<option value="R">R</option>',
'</select>',
'<label for="var">',
'<input type="text" id="championSpell[]" name="championSpell[]" data-id="' + y +'" readOnly="true">',
'<br>',
'<textarea type="text" id="p_scnt" size="20" name="p_scnt_' + y + '" value="" placeholder="Enter Description">',
'<select>','' +
'<option value="buff">Buff</option>',
'<option value="nerf">Nerf</option>',
'<option value="new">New</option>',
'<option value="change">Change</option>',
'<option value="bugfix">Bugfix</option>',
'</select>',
'</label>',
'<a href="#" id="addGeneral">Add Change</a>',
'<a href="#" id="remVar">Remove Spell</a>',
'</p>'].join('')).appendTo($(this).next());
y++;
return false;
});
});
在你代码 $('输入[name = " championSpell[]"]")。attr('data-id', y);这将改变所有输入data-id
。而不是直接添加它的data-id。Like data-id="'+y+'"
我已经更新了你的代码。
请尝试此代码
$(function() {
$('body').on('click', '#addSpell',function() {
var championdataid = $('input[id="champion[]"]').attr('data-id');
$(
'<p><select name="change[]" id="change[]" onchange="val(this)"><option value="Passive">Passive</option><option value="Q" selected>Q</option><option value="W">W</option><option value="E">E</option><option value="R">R</option></select><label for="var"><input type="text" id="championSpell[]" name="championSpell[]" data-id="'+y+championdataid +'" readOnly="true"><br><textarea type="text" id="p_scnt" size="20" name="p_scnt_' + i +'" value="" placeholder="Enter Description" /><select><option value="buff">Buff</option><option value="nerf">Nerf</option><option value="new">New</option><option value="change">Change</option><option value="bugfix">Bugfix</option></select></label> <a href="#" id="addGeneral">Add Change</a> <a href="#" id="remVar">Remove Spell</a></p>').appendTo($(this).next());
//$('input[name="championSpell[]"]').attr('data-id', y);
y++;
return false;
});
});
相关文章:
- 如何包含特定于每个视图angularjs的javascript文件
- 动画功能不应用于每个元素
- 计算输入的每个单词组合的百分比
- Instagram客户端ID是否特定于每个使用它的人
- jQuery拖放然后打开特定于每个列表项的警报
- 如何使用filereader预览输入的每个文件
- 通过PHP将Javascript动态HTML输入POST(每个添加的输入都需要重命名字段's)
- 检测字段中输入的每个字符并运行条件语句
- 在提交时选择所有输入的每个值
- 使用jquery获取多个文件输入中每个文件的内容
- 将输入与每个id进行比较,并输出最匹配的id
- 输入类型$.每个更改值一个接一个
- 函数只作用于每个元素的第一个子元素
- jQuery如何使slideToggle应用于每个项目
- 以相互对应的多重输入于秘银
- 如何大写输入的每个单词使用javascript
- 我使用jquery next和cost选项只选择一个元素,但这适用于每个元素的类
- 添加一个相当于每个锚点的onMouseDown属性'类或文档中的s HREF属性
- 我使用什么技巧将文本输入到每个单独的选项卡中
- 获取高度并应用于每个元素失败