0
我有一個表單域,看起來像這樣:js serialize()是否可以處理數組字段名?
<input name="cm[3]" value="0.0000">
我把它發佈到使用serializeData功能安全AJAX功能:
var formData = $(form).serialize();
console.log(formData);
secureajax.securecall({
url: '/ajax/quadrants/thresholds-write',
data: formData,
success: function(data) {
... etc
注意,我的數據轉儲到控制檯。如果我運行此代碼,然後立即在/ ajax /象限/閾值寫入頁面上轉儲$ _POST數組,我在控制檯上看到我的輸入值(序列化數據轉儲),但post變量始終顯示默認值,在這個CAS裏e,「0.0000」。
控制檯片段:
quad_token=b765def8e66df0d473148310175e8a6e&systemsId=12&selectedString=1&cm%5B3%5D=9999...
轉儲在$ _ POST PHP:
Array
(
[systemsId] => 12
[selectedString] => 1
[cm] => Array
(
[3] => 0.0000
[5] => 1.0000
[7] => 0.0000
CM的默認值[3]爲0.0000,但是當我輸入這樣的東西作爲9999,我請參閱js,但它好像系統正在讀取值標記,而不是鍵入的值。或者,我在想數組表單字段名稱沒有處理,但是數組的格式怎麼樣都好,只是數值會搞砸了?
任何想法?
注意:secureajax是爲ajax調用提供CSRF功能的自定義函數。
所以當你寫「serializeData函數」時,你的意思是'.serialize()',對不對?無論如何,首先要做的就是使用瀏覽器控制檯來查看secureajax代碼實際上正在放入傳出的HTTP請求中。 – Pointy
是的,我們可能需要查看secureajax中的內容。它可能期望所有輸入都具有type =「」屬性。 – WEBjuju
問題是,當頁面加載時你正在設置'formData'。您需要將該代碼放入用戶提交表單時運行的函數中,以便獲取輸入的更新值。 – Barmar