2016-08-09 4 views
0

У меня есть два входных-х:Как получить значение текстового поля с помощью нажатия кнопки Ajax

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

У меня есть ниже код АЯКС:

$("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) { 

     }, 
    }); 
}); 

Вопрос: Как я могу получить значение в переменной «Params» , поле «значение» из текстового поля с someID_1, если все мои идентификаторы создаются динамически с помощью ответа с сервера? Входные данные также создаются динамически.

Существует код, который генерируется мой ввод-х:

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

Как динамический являются входами, вы можете добавить дополнительные занятия? Можете ли вы гарантировать, что будет только 2 входа? – Joe

+0

Я гарантирую это, потому что я получаю в ответ список элементов, и для каждого из них созданы 2 ввода. – Anamnian

ответ

1

Поскольку ваш DOM немного проблематичен, вам нужно будет перейти к предыдущему элементу td и взять вход оттуда.

Вот пример:

$("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

Я не могу его использовать, потому что, возможно, input или только один, поэтому я не знаю этого, в зависимости от ответа от сервера – Anamnian

+0

Этот код работает для всех входов. Вы хотите только одного из них? – Dekel

+0

Да, мне нужно это текстовое поле, что такое пара с кнопкой, которую я нажал – Anamnian

0

Я не уверен, что я вижу здесь проблему, но, возможно, я неправильно понял вопрос?

В принципе, вы можете подобрать любой DOM-элемент, который имеет какой-либо идентификатор, с помощью JQuery с:

$("#MY_RANDOM_ID") 

так что вы можете получить доступ к его значение (ввод данных пользователем или автоматически генерируется вход) с:

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

Да, я знал это, проблема в том, что я не знаю, на самом деле, какой идентификатор, я просто могу его получить, поставив его на вход через Anamnian

Смежные вопросы