我有一个包含多个评论框的页面。当有人点击评论框的提交按钮时,JQuery会处理提交并发布评论。然后,我想将注释框中的文本设置为空。我正在使用这样的东西:
$('.formstyle').submit(function() {
$.post("/messages/", $(this).serialize());
return false;
});
我知道有.reset()
选项,但仍然没有告诉我如何访问单个文本元素。我可以使用$(":input[name=new_message]").val('');
设置页面上所有文本框的文本,但如果有人收到他们尚未提交的消息,那可能会很烦人。我认为this.(":input[name=new_message]").val('');
的某些方面可行,但没有骰子。我想我只是没有连接this
(或者更可能是$(this)
)和输入选择器之间的点。
答案 0 :(得分:2)
尝试:
$(":input[name='new_message']",this).val('');
$()
的第二个参数定义了选择器的上下文,因此选择器只匹配触发提交的表单内的输入
答案 1 :(得分:1)
你可以简单地使用它: -
$('.formstyle').submit(function() {
$.post("/messages/", $(this).serialize());
$(this).find('input[name=new_message]').val('');
return false;
});
答案 2 :(得分:0)
如果您有多个<form>
,this
将引用正在提交的具体内容。您可以使用$(this).find(':input[…]').val('')
重置该表单中的字段。