使用 JQuery submit() 添加字段到表单

Adding fields to form with JQuery submit()

我正在尝试在使用 JQuery 提交表单之前将表单字段添加到表单中。我已经尝试了以下 Whosebug 问题,但没有成功:

How to add additional fields to form before submit?

jQuery - add additional parameters on submit (NOT ajax)

如果我不向表单添加任何参数,提交有效:

$('.submit_button').click(function(){
    $('#quote_form').submit();
});

上面的代码有效。然而,一旦我尝试添加一个字段,表单就不会被提交。它没有到达服务器。这是我正在使用的代码:

$('.submit_button').click(function(){
    console.log('1');
    $("#quote_form").submit( function(eventObj) {
      console.log('2');
      $(this).append('<input type="hidden" name="dog" value="rover" /> ');   
      return true;
    });
});  

第一个 console.log 出现在控制台中,但第二个没有。我如何让这段代码起作用?

您没有提交表格。试试这个:

$("#quote_form").submit( function(eventObj) {
   $(this).append('<input type="hidden" name="dog" value="rover" /> ');   
   return true;
});

$('.submit_button').click(function(){
    $("#quote_form").submit();
});

$(..).submit(handler) 不提交,只为提交事件注册一个处理函数。您需要调用不带参数的 $(..).submit() 才能提交。

第二个 console.log() 不会出现,因为您没有停止提交。

$('.submit_button').click(function(){
    console.log('1');
    $("#quote_form").submit( function(event) {
        event.preventDefault();
        console.log('2');
        $(this).append('<input type="hidden" name="dog" value="rover" /> ');     
        $("#quote_form").submit();
    });
});

希望对您有所帮助!