2017-08-24 74 views
0

我创建的HTML元素动态的div一个文本框的值,我需要得到值文本框 这是我的动态创建的内容,现在我需要得到如何从动态创建的div

<div id="TextBoxContainer"> 
    <div id="newtextbox1"> // this id is dynamic id 
    <div class="row cells2"> 
     <div class="cell"> 
     <label>Patient Name</label>   
     <div class="input-control text full-size"> 
      <input type="text" id="PatientName1" placeholder="Patient Name"/> // this id is dynamic id 
     </div> 
     </div> 
     <div class="cell"> 
     <label>Patient ICNo</label> 
     <div class="input-control text full-size" > 
      <input type="text" id="PatientICNo" placeholder="Patient ICNo"/> 
     </div> 
     </div> 
    </div> 
    </div> 
</div> 

这里我试图在jQuery的

if ($("#TextBoxContainer") != null && $("#TextBoxContainer").length > 0) { 
    var count = 1; 
    $("#TextBoxContainer").each(function() { 
     debugger; 
     var Pid = "input#PatientName" + count; 
     var childdiv = "div#newtextbox" + count; 
     count++; 
     var patientname = $(this).closest(childdiv).children(Pid).val();   

    }); 
} 
+2

您可以使用'var patientname = $(Pid).val();' – Satpal

+1

'''最近的''在您用于孩子时通过父母。删除'.closest(childdiv)'可能会工作 – adiga

+1

不要使用'id'属性(特别是那样)。使用类名和相对选择器。 - '$(“#TextBoxContainer”)。each(function(){var patientname = $(this).find('。myNameTextBoxClass')。val();});' –

回答

1

在这里,你有一个解决方案https://jsfiddle.net/p9ywL4pm/1/

if ($("#TextBoxContainer") != null && $("#TextBoxContainer").length > 0) { 
 
    var count = 1; 
 
    $("#TextBoxContainer").children().each(function() { 
 
     var Pid = "input#PatientName" + count; 
 
     var patientname = $(this).find(Pid).val();   
 
     console.log(Pid, patientname); 
 
     count++; 
 
    }); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="TextBoxContainer"> 
 
    <div id="newtextbox1"> 
 
    <div class="row cells2"> 
 
     <div class="cell"> 
 
     <label>Patient Name</label>   
 
     <div class="input-control text full-size"> 
 
      <input type="text" id="PatientName1" placeholder="Patient Name" /> 
 
     </div> 
 
     </div> 
 
     <div class="cell"> 
 
     <label>Patient ICNo</label> 
 
     <div class="input-control text full-size" > 
 
      <input type="text" id="PatientICNo" placeholder="Patient ICNo"/> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </div> 
 

 
    <div id="newtextbox2"> 
 
    <div class="row cells2"> 
 
     <div class="cell"> 
 
     <label>Patient Name</label>   
 
     <div class="input-control text full-size"> 
 
      <input type="text" id="PatientName2" placeholder="Patient Name"/> 
 
     </div> 
 
     </div> 
 
     <div class="cell"> 
 
     <label>Patient ICNo</label> 
 
     <div class="input-control text full-size" > 
 
      <input type="text" id="PatientICNo" placeholder="Patient ICNo"/> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

去,我认为里面#TextBoxContainer容器中的两个子元素。

更改#PatientICNo输入

<input type="text" class="PatientICNo" placeholder="Patient ICNo"/> 

使用class,而不是ID因为ID需要独特。

希望这会帮助你。

0
var arrOfValue =[]; 
$('.input-control text full-size [type="text"]').each(function() { arrOfValue .push($(this).val())}) 

的arrOfValue将所有的文本,使用索引来获取值中获取价值。

+0

bro动态所有值我需要推入数组 –

+1

是的,上面的代码将选择输入控制文本全尺寸类中的所有输入,并循环以获取所有文本值。我正在使用类选择器和attritbute类型文本。 –