2015-04-23 156 views
2

如果通過點擊按鈕或按回車提交表單,提交按鈕將包含在發佈的字段中。但是,如果表單提交與jquery($('#some_form').submit();),提交按鈕不包括在內。如果在按鈕上觸發了點擊事件,則它會包含在發佈的字段中。
這種行爲是否正常?有沒有辦法使用submit方法在提交的字段中包含按鈕?爲jQuery提交表單時郵件中包含提交按鈕

**編輯:**作爲@Pointy在評論中指出:

從輸入字段的 「Enter」 鍵可引起提交;這些規則有些複雜。通常它與多少個輸入字段有關(比如,只有一個或多個)。

所以顯然不是每次輸入時按下表單提交,但我找不到任何有關它的信息。有人可以發佈一個鏈接,或者解釋這些關於什麼觸發表單提交以及包含哪些表單域的規則?

+0

這是預期的行爲。如果與該按鈕的交互是造成表單提交的原因,則提交按鈕僅包含在POST(或GET)中。 – Pointy

+0

'有沒有辦法在提交的字段中包含按鈕?'正如您所說的,您可以觸發點擊。 – TheFrozenOne

+0

對,觸發「點擊」,或者只是添加參數名稱和值。 – Pointy

回答

0

你可以做這樣的事情:https://jsfiddle.net/6smh74s9/2/

的Javascript

$('form').on('submit', function(e) { 
    e.preventDefault(); 

    var data = []; 
    $(this).find(':input').each(function() { 
     if (this.name) { 
      data.push({ name: this.name, value: this.value }); 
     } 
    }); 

    $('div').html($.param(data)); 
}); 
+0

你還沒有定義'name'變量,但它顯示爲「result」:https://jsfiddle.net/y10vcyk5/ :) – undefined

+0

啊你是對的。小錯誤!我已經更新了我的答案。這對你有用嗎? – Stuiterbal

+0

儘管這顯示了一種生成包含提交按鈕的查詢字符串的方法,但它不會回答爲什麼在使用javascript提交表單時不包括它。 – undefined