我有两个数组输入。我希望他们在关键事件上是平等的。 问题是我不能让每个第一个输入值在每个第二个输入上相等。
JSFIDDLE (此小提琴仅复制第一个输入)
Jquery我用过。 (
仅适用于mgr [1]到gm [1]。但未能将mgr [2]复制到gm [2]或mgr 3到gm 3
$(document).ready(function() { $("#mgr").keyup(function(){ $('#gm').val($('#mgr').val()); });
});
我也试过这个jquery。 但它将第一个输入值复制到所有第二个输入 的 SEE FIDDLE
$(document).ready(function() {
$('input[name="mgr[]"]').keyup(function(){
var val = 0;
$('input[name="mgr[]"]').each(function() {
val += Number($(this).val());
});
$('input[name="gm[]"]').each(function() {
$(this).val(val);
});
});
});
我想要什么
答案 0 :(得分:1)
首先,你应该停止在html,FOREVER中使用相同的ID。你的代码永远不会以它应该的方式工作,你反对惯例。
我设法纠正你的代码以类似方式工作,其中第二个输入是通过第一个输入的索引找到的。
http://jsfiddle.net/guanzo/YBQKz/8/
$('input[name="mgr[]"]').keyup(function(){
var index = $(this).index('input[name="mgr[]"]')
$('input[name="gm[]"]').eq(index).val($(this).val());
});
答案 1 :(得分:1)
根据您的HTML结构,此代码可以为您提供帮助。
$(document).ready(function() {
$("input[type=text]").on("input", function() {
if($(this).index() / 2 != 0 || $(this).index() == 0) {
$(this).next().val($(this).val());
}
});
});
答案 2 :(得分:0)
关于您遵循的代码的第一个简短说明。 在Jquery中,你有选择器来获取DOM中的元素,这些选择器可以是"。"对于类或"#",对于id属性。
因此,在示例中,jquery函数表示如果单击带有" js-key-up"的元素。 class获取id属性中的值,然后使用此表单'#'搜索具有id属性的元素。 + id +' -in-document' 在你的情况下可以是这样的代码。
<input class="mgr" id="1">
<input class="mgr" id="2">
<input class="mgr" id="3">
<input id="gm1">
<input id="gm2">
<input id="gm3">
$('.mgr').keyup(function (e) {
var id = $(this).attr('id');
$('#gm' + id').html($(this).val());
});
我希望它有所帮助。祝你好运!