jQuery находит элемент рядом с другим

Привет у меня есть следующий HTML:

<p>  
    <input type="text" name="field1"/> <input type="hidden" name="fieldh1"/>  
    <button type="button" class="sendInfo">Send</button>  
</p>  
<p>  
    <input type="text" name="field2" /> <input type="hidden" name="fieldh2"/>  
    <button type="button" class="sendInfo">Send</button>  
</p>  

То, что я хочу, - то, что, когда пользователь нажимает кнопку, я должен отправить использование ajax содержание полевого поля.

Это - то, что я пытаюсь сделать без успеха.

$(function() {
        $('button.sendInfo').live('click', function() {
            var id = $(this).parent().next('[type=text]').val();
            alert(id);
        });
    });

Я планирую установить то, что пользователь вводит в текстовом поле к скрытому полю, и значение, полученное от ajax, звонит в нормальное текстовое поле. Но проблема состоит в том, что я не могу даже получить значение текстового поля, которое находится в той же строке как кнопка пользовательские щелчки. Кто-либо может помочь мне?Большое спасибо.

8
задан karim79 20 May 2010 в 19:45
поделиться

4 ответа

Попробуйте:

$(this).siblings('input:text').val();

Или измените next на find:

$(this).parent().find('[type=text]').val();

так как next ищет только в ближайшем следующем сиблинге.

19
ответ дан 5 December 2019 в 07:33
поделиться

Ваша проблема в том, что "next()" переходит к следующему брату родителя - а родителем является тег

, поэтому братом, если он существует, является следующий тег

.

Вы хотите $(this).parent().children('[type=text]').val() или $(this).parent().find('[type=text]')

1
ответ дан 5 December 2019 в 07:33
поделиться

Можете ли вы выбрать текстовое поле с помощью идентификатора?

$(function() { 
   $('button.sendInfo').live('click', function() {
      //what about this:
      var id = $('#textBoxID').val();
      alert(id); 
       //or this
      var id2 = $('+ input', this).val(); 
      alert(id2);
    }); 
});
0
ответ дан 5 December 2019 в 07:33
поделиться

Я могу использовать функцию jQuery.next () .

2
ответ дан 5 December 2019 в 07:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: