除了名稱和值之外,沒有辦法提交輸入的屬性,但是您可以使用任何想要的信息在表單上隱藏輸入,甚至可以創建它們或動態地將它們填充到按鈕的onclick中或表單的提交事件。
作爲另一種選擇,我會填充JSON形式的按鈕值中的信息,因爲按鈕的值通常無用。
如果你真的想出了想法,那麼你可以在表單的action屬性中將url信息填入url的查詢字符串中,然後通過檢查GET數組來獲取信息(但是如果表單方法是取而代之的是,然後這些值可能會被覆蓋!)
但是,如果你只是需要一種方法來區分許多按鈕,那麼每個人都有不同的名稱或值,這可能是按鈕具有名稱和值的唯一原因。
關於andrejd的回答,請注意,雖然你可以使用的onsubmit功能與阿賈克斯提交,然後返回false取消默認提交,請注意,使用這種方法存在以下問題:
1 )onSubmit函數不知道哪個按鈕被按下了,但是你可以使用按鈕的onClick事件,但是你必須綁定到表單上的每個提交按鈕(你可以用jquery等來更容易地做到這一點)。
2)由於Ajax不會影響頁面內容,因此ypu會自行刷新它或自行導航頁面,後者可以使用「location.href」
3)如果你正在提交文件,你將很難用ajax做這件事,你可以嘗試使用jquery fileupload插件。
4)Ajax被限制在同一個源(tgat表單提交不是),你可以嘗試使用JSONP解決方法。
5)如果客戶端沒有JavaScript(比如一些手機或者某些文本瀏覽器,比如linux瀏覽器),或者禁用了JavaScript或者使用了較老的瀏覽器,Ajax將不起作用,並且通常不會建議完全依賴Ajax,但至少應該爲這些情況提供一種替代方案。
對於問題2-4,你可以通過讓Ajax只是額外的內容來解決它們,然後返回true以讓默認提交提交表單。
我知道你可能無法顯示所有內容,但我希望能夠儘可能多地顯示 – 2012-03-29 23:43:34
這是什麼情況?發佈時,只會發送輸入元素的名稱和值。 – F21 2012-03-29 23:46:33
傳回的唯一數據是名稱和值對。除非你願意使用JavaScript。 – 2012-03-29 23:47:40