如果我在网络表单中有一堆编号字段,例如发票:
< input type="text" name="Item1" /><input type="text" name="Desc1" /><br />
< input type="text" name="Item2" /><input type="text" name="Desc2" /><br />
< input type="text" name="Item3" /><input type="text" name="Desc3" /><br />
使用JQuery,如何选择第一个,然后从第一个引用第二个?
我有类似$("input[id^='Item']")
的东西,它可以很好地选择每个项目,但是从每个项目中我需要引用相应的Desc并用结果填充它。
例如,假设用户在Item1和onBlur中键入内容我想将内容复制到相应的Desc。
由于
答案 0 :(得分:5)
这可能是一个可能的解决方案:
$("input[name^=Item]").blur(function() {
var n = $(this).attr("name").match(/\d+/);
$("input[name=Desc" + n + "]").val($(this).val());
});
答案 1 :(得分:4)
答案 2 :(得分:2)
$("input[name^=Item]").blur(function() {
var reg = new RegExp("/[0-9]+$/")
var number = reg.exec($(this).attr("id"));
$("input[name=Desc"+number+"]").val($(this).val());
}
答案 3 :(得分:0)
如果我理解你的问题。我能想到的最简单的方法是在每个项目上放置一个模糊监听器。
$("input[id^='Item']").blur(function(event){
$(event.target).attr('the attribute you want to change', $(event.target).val())
})
这将获取所有输入并添加一个模糊侦听器,它根据值输入更改属性。
答案 4 :(得分:0)
变体:
$("input[name^=Item]").blur(function(){
$($(this).replace(/^[^0-9]+/, 'Desc')).val($(this).val());
});