您好我有以下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调用的值设置为普通文本框。但问题是,我甚至无法获得与用户点击的按钮位于同一行的文本框的值。 谁能帮我? 非常感谢。
答案 0 :(得分:18)
尝试:
$(this).siblings('input:text').val();
或将next
更改为find
:
$(this).parent().find('[type=text]').val();
由于next
仅搜索紧随其后的兄弟。
答案 1 :(得分:2)
我可以使用jQuery.next()
功能。
答案 2 :(得分:1)
您的问题是“next()”将转到父级的下一个兄弟 - 而父级是<p>
标记,因此兄弟(如果存在)是以下{{1} } 标签。
您需要<p>
或$(this).parent().children('[type=text]').val()
答案 3 :(得分:0)
您可以使用ID
选择文本框吗?$(function() {
$('button.sendInfo').live('click', function() {
//what about this:
var id = $('#textBoxID').val();
alert(id);
//or this
var id2 = $('+ input', this).val();
alert(id2);
});
});