设置动态生成的DIV输入域的值

问题描述:

尊敬的专家, 我跟随Mr.Steve Sanderson Example处理可变长度列表,ASP.NET MVC 2样式。设置动态生成的DIV输入域的值

在我的情景中,我有一个文本框,其中用户扫描条形码扫描仪,扫描的条形码值将分布在变量列表输入字段中。

我使用JQuery设置这些产生的场的值,动态地生成的DIV的

实施例是

<div class="editorRow"> 
<input type="hidden" name="gifts.index" autocomplete="off" value="a041d40e-d016-4543-b3f1-bf72239e1377" /> 

    Area Code <input id="gifts_a041d40e-d016-4543-b3f1-bf72239e1377__AreaCode" name="gifts[a041d40e-d016-4543-b3f1-bf72239e1377].AreaCode" type="text" value="0" /> 
    Account No: <input id="gifts_a041d40e-d016-4543-b3f1-bf72239e1377__ConsCode" name="gifts[a041d40e-d016-4543-b3f1-bf72239e1377].ConsCode" type="text" value="0" /> 
    Amount: <input id="gifts_a041d40e-d016-4543-b3f1-bf72239e1377__CAmount" name="gifts[a041d40e-d016-4543-b3f1-bf72239e1377].CAmount" type="text" value="0" /> 
    Coll No: <input Value="1" id="gifts_a041d40e-d016-4543-b3f1-bf72239e1377__CollNo" name="gifts[a041d40e-d016-4543-b3f1-bf72239e1377].CollNo" type="text" value="1" /> 
    <a href="#" class="deleteRow">delete</a> 

    <span class="field-validation-valid" id="gifts_a041d40e-d016-4543-b3f1-bf72239e1377__AreaCode_validationMessage"></span> 
    <span class="field-validation-valid" id="gifts_a041d40e-d016-4543-b3f1-bf72239e1377__ConsCode_validationMessage"></span> 
    <span class="field-validation-valid" id="gifts_a041d40e-d016-4543-b3f1-bf72239e1377__CAmount_validationMessage"></span> 

如果看到存在具有索引和值的一个隐藏字段= “a041d40e-d016-4543-b3f1-bf72239e1377”,这在其他成员的名字中很常见。当我再添加一个DIV时,隐藏的输入值再次改变,并且该div的所有成员具有相同的公共值。

我坚持如何处理它,到目前为止,我已经成功地分发扫描条码的价值的输入框而这超出这样的动态的DIV的一面:

$("#ScanBCode").keyup(function (e) { 
barCode = $("#ScanBCode").val(); 
if (barCode.length == 21) { 
    var count = 1; 
    Checking(count); 
} 

function Checking(count) { 
    var code = barCode.substr(2, 3); 
    var ACode = barCode.substr(5, 3); 
    var Ccode = barCode.substr(8, 5); 
    var Amount = barCode.substr(13, 8)/1000; 
    $("#TabACode").val(ACode); 
    $("#TabCCode").val(Ccode); 
    $("#TabAmount").val(Amount); 
    $("#TabCollNo").val(code); 
    $("#ScanBCode").val(""); 
} 

});

任何想法

不知道wheter我得到这个权利,但似乎你正在寻找一种方式来遍历一个jQuery集合,可以使用jQuery.each完成。

因此,我建议循环遍历所有生成的'字段',而不是注意在输入字段上生成的一些ID,而不是通过它们的类editorRow进行验证。只是注意,而不是每个输入字段一个单独的ID,你必须设置一些班级在他们身上,例如:

<div class="editorRow"> 
    <!-- set a class on your input fields --> 
    Area Code <input class="areaCode" type="text" value="..." /> 
</div> 

现在还能用自己keyup处理器内的以下JavaScript:

$('.editorRow').each(function(){ 
    var $row = $(this); 
    $('.areaCode', $row).val('somevalue'); //do this for all of your input fields 
}); 

只是回来的情况下,在这里不清楚的东西。

+0

我要投票你的答案,但它需要15的声誉,我只有5现在:( – alhashmiya 2011-03-30 10:37:07

+0

感谢..你的答案对我的帮助很多..再次感谢先生 – 2015-01-22 06:43:30

你是伟大的工作罚款我的工作代码,

$("#ScanBCode").keyup(function (e) { 
    barCode = $("#ScanBCode").val(); 

    if (barCode.length == 21) { 
     var code = barCode.substr(2, 3); 
     var ACode = barCode.substr(5, 3); 
     var Ccode = barCode.substr(8, 5); 
     var Amount = barCode.substr(13, 8)/1000; 

     $('.editorRow').each(function() { 
      var $row = $(this); 
      var chk = $('.text-box-Area', $row).val(); 
      //alert(chk); 
      if (chk == 0) { 
       $('.text-box-Area', $row).val(ACode); 
       $('.text-box-Cons', $row).val(Ccode); 
       $('.text-box-coll', $row).val(code); 
       $('.text-box-Amount', $row).val(Amount); 
       $("#ScanBCode").val(""); 

      } 
     }); 
    } 

});