2016-08-09 167 views
0

Ich habe 2 Eingabe des bekommen:Wie Textbox Wert per Taste klicken Ajax

<td><input id='someName_1' type='textbox' value='1' /><td> 
<td><input id='someID_1' class="button1" type='button' value='Submit' /></td> 

Ich habe unter Ajax-Code:

$("body").on('click', '.button1', function() { 
    var params = { id: this.id, value: (?) }; 
    $.ajax({ 
     type: 'POST', 
     url: '@Url.Action(SomeUrl- pointless)', 
     dataType: 'json', 
     cache: false, 
     contentType: 'application/json; charset=utf­8', 
     data: JSON.stringify(params), 
     success: function (data, status) { 
      doingsomething 
     }, 
     error: function (er, info) { 

     }, 
     complete: function (xhr, status) { 

     }, 
    }); 
}); 

Frage ist: Wie i-Wert in Variable 'params' bekommen , Feld 'Wert' aus Textfeld mit einigen ID_1, wenn alle meine IDs dynamisch über die Antwort vom Server erstellt werden? Eingaben werden zu dynamisch erstellt.

Es ist Code, der meine Eingabe des generiert:

var s = []; 
$.each(data.items, function (i, item) { 
       var t = "<td><input id='someName_" + item.id + "' type='textbox' value='1' /></td>" + 
       "<td><input id='someID_" + item.id + "' class='button1' type='button' value='Submit' /></td></tr>"; 
       s.push(t);     
      }); 
$('body').html(s.join("")); 
+0

Wie dynamisch die Eingänge sind, können Sie zusätzliche Klassen hinzufügen? Können Sie garantieren, dass es nur 2 Eingänge gibt? – Joe

+0

Ich garantiere es, denn ich bekomme in der Liste der Elemente, und für jeden von ihnen erstellt 2 Eingänge. – Anamnian

Antwort

1

Da Ihr DOM ein bisschen problematisch ist, müssen Sie zum vorherigen td Element gehen und die Eingabe von dort nehmen. Hier

ein Beispiel:

$("body").on('click', '.button1', function() { 
    input = $(this).parent('td').prev('td').children('input[type=textbox]') 
    var params = { id: $(this).attr('id'), value: input.val() }; 
    $.ajax({ 
     type: 'POST', 
     url: '@Url.Action(SomeUrl- pointless)', 
     dataType: 'json', 
     cache: false, 
     contentType: 'application/json; charset=utf­8', 
     data: JSON.stringify(params), 
     success: function (data, status) { 
      doingsomething 
     }, 
     error: function (er, info) { 

     }, 
     complete: function (xhr, status) { 

     }, 
    }); 
}); 
+0

Ich kann es nicht verwenden, denn es gibt vielleicht eine Menge Eingabe, oder nur eine, so weiß ich es nicht, je nach Antwort vom Server – Anamnian

+0

Dieser Code funktioniert für alle Eingänge. Willst du nur einen von ihnen? – Dekel

+0

Ja, ich brauche diese Textbox, was ist Paar mit Taste Ich klickte – Anamnian

0

Ich bin nicht sicher, dass ich ein Problem sehen hier, aber vielleicht falsch verstanden habe ich die Frage?

Grundsätzlich kann man eine beliebige DOM-Element aufnehmen, die jede ID hat, durch Verwendung von jquery mit:

$("#MY_RANDOM_ID") 

so kann man seinen Wert zugreifen (Benutzereingabe oder automatisch eingegeben erzeugt wird) mit:

$("#MY_RANDOM_ID").val() 
+0

Ja, ich wusste es, Problem ist, ich weiß nicht, was ID, ich kann es nur bekommen, indem Sie es in Eingabe über Anamnian