My $ .ajax()不會序列化按鈕名稱和值。Ajax post serialize()不包含按鈕名稱和值
我有一個非常簡單的形式。它有一個按鈕和一個文本框。
<form action="/MyController/MyAction" data-ajax-method="post"
data-ajax-mode="replace" data-ajax-target="#mypartial" id="myform"
method="post">
<button type="submit" class="positive" name="button" value="click1">
<img src="/Id/Images/Icons/16/enabled/tick.png" title="click1">
Click
</button>
<input id="txtBlah" name="txtBlah" type="text" value="hello">
</div>
</form>
當我打電話$(this).serialize()
,文本框包含在字符串中而不是按鈕。
Debug.Log($(this).attr('id')); //== 'myform'
Debug.Log("data: " + $(this).serialize()); //== data: txtBlah=hello
我在研究中指出,在其他問題中,主要原因是按鈕上缺少名稱元素。我有一個名稱元素。
我也嘗試了一個非常簡單的<input type="submit" name="mysubmit" />
,它沒有改變任何東西。
的解決方案,我用
var buttonSubmit = (function (e)
{
e.preventDefault();
var form = $(this).closest('form');
form.attr('data-button-name', $(this).attr('value'));
form.closest('form').submit();
});
您還可以讓按鈕單擊事件冒泡到表單,然後使用event.srcElement來確定哪個按鈕導致提交。 – slashingweapon 2012-03-26 05:15:30
感謝您的幫助。我的解決方案受到你的啓發。我更新了我原來的問題。 – 2012-03-26 06:18:12