2016-11-02 5 views
2

Ich wollte das Eingabefeld, das in div ist mit jquery. Aber ich bin nicht in der Lage, es zu bekommen. Ich möchte es mit Klassenmodell iterieren und in das Array von Zeichenfolge hinzufügen und es an den Controller übergeben.Wie bekomme ich das Eingabefeld in geschachtelten div durch jquery

unten ist mein ein div, das Klassenmodell haben ich mehrere div wie diese machen und durchlaufen sie ihren darin das Eingabefeld zu bekommen und es zu meinem Controller

<div class="models"> 
      <div class="row" > 

       <div class="col-md-12" > 
        <label class="control-label" >NIC</label> 
        <input type="text" class="form-control" name="VNIC" id="VNIC" required> 
       </div> 
      </div> 



      <div class="row"> 
       <div class="col-md-12"> 
        <label class="control-label">First Name</label> 
        <input type="text" class="form-control" name="VfirstName" id="VfirstName" required> 
       </div> 
      </div> 



<script type="text/javascript"> 
       $("#Visitor-form").on("submit", function() { 
        //Code: Action (like ajax...) 
        var slides = $(".models"); 
        console.log(slides); 
        for (i = 0; i < slides.length; i++) { 

         var previsitor = [ 
          { NIC: slides[0].value, V_Name: slides[0].value } 
         ]; 
        } 
        previsitors = JSON.stringify({ 'previsitors': previsitor }); 
        console.log(previsitors); 
        $.ajax({ 
         contentType: 'application/json; charset=utf-8', 
         dataType: 'json', 
         type: 'POST', 
         url: '/PreVisitor/addMultipleVisitor', 
         data: previsitors, 
         success: function() { 
          $('#result').html('"Pass List<PreVisitor>" successfully called.'); 
         }, 
         failure: function (response) { 
          $('#result').html(response); 
         } 
        }); 

       }) 
+0

'$ ('Form-Kontrolle')' da Sie eine Klasse in Ihre Eingaben haben – felix91

+0

, was ich anders div mit Klassenmodell und iterieren thorugh es und jedes div erstellen lassen wollte verschiedene Eingabe-Typen, die mein einzelnes Ansichtsmodell machen .. und ich wollte eine Liste von Viewmodel an den Controller –

+0

übergeben versuchen [serialize] (http://api.jquery.com/serialize/) –

Antwort

1

Ist das ist, was passieren Sie brauchen? Holen Sie alle Eingabewerte und fügen Sie sie in ein Array ein. Nicht sicher, welche Art von Array Sie wollen, nur Werte oder Werte für Namen.

$('button').on('click',function(){ 
 
    var total = []; 
 
    var mapped = {}; 
 
    $('.models').find('input[type="text"]').each(function(index,elem){ 
 
     total.push(elem.value); 
 
     mapped[elem.name] = elem.value; 
 
    }); 
 
    console.log(total); 
 
    console.log(mapped); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="models"> 
 
      <div class="row" > 
 

 
       <div class="col-md-12" > 
 
        <label class="control-label" >NIC</label> 
 
        <input type="text" class="form-control" name="VNIC" id="VNIC" required> 
 
       </div> 
 
      </div> 
 

 

 

 
      <div class="row"> 
 
       <div class="col-md-12"> 
 
        <label class="control-label">First Name</label> 
 
        <input type="text" class="form-control" name="VfirstName" id="VfirstName" required> 
 
       </div> 
 
      </div> 
 
</div> 
 
<button>click me</button>

+1

Exakt Danke –

Verwandte Themen