jQuery submit()函数不会导致<form>提交</form>

时间:2011-04-24 21:52:26

标签: jquery

我有这样的表格......

<form action="/tags/3" class="edit_tag" id="edit_tag_3" method="post">
  <div style="margin:0;padding:0;display:inline">
    <input name="_method" type="hidden" value="put" />
  </div> 
  <input class="tag_form_field" id="tag_name" maxlength="255" name="tag[name]" size="42" type="text" value="" /> 
</form>

我正试图像这样提交......

$('.tag_form_field').change(function() {
  $(event.target).closest('form').submit();
});

当我更改输入时,表单不会提交。什么都没发生 - 没有错误。

我知道选择器和onChange()处理程序都在工作。我通过用{jQuery submit()函数替换css()来测试它们,它运行良好。

我在Safari X和Chrome OS上测试了它,结果相同。

有什么想法吗?

感谢。


我尝试了同样的结果......

$('.tag_form_field').change(function() {
  $(this).closest('form').submit();
});

$('.tag_form_field').change(function(e) {
  $(e.target).closest('form').submit();
});

$('.tag_form_field').change(function() {
  $(this).closest('form').submit();
});

$('.tag_form_field').change(function() {
  $(this).closest('form')[0].submit();
});

2 个答案:

答案 0 :(得分:2)

尝试$(this).closest('form.edit_tag')[0].submit();

否则它只会触发表单上的submit事件。

答案 1 :(得分:1)

我不知道。你能尝试用这种方式来表达:

$('.tag_form_field').change(function(e){
    $(e.target).closest('form.edit_tag').submit();
});

jQuery应该为您正确封装event对象,无论浏览器如何。

另外,我倾向于认为你可能在form内没有form,所以不应该专门选择a&#34;表格edit_tag&#34;,不应该在那里吗?可能只需要$(this).closest('form')就足够了吗?