我在jsp里面根據后臺傳來的list 元素,自動生成若干控制元件。為了方便提交時后臺的區別接收,每個控制元件的名字(name)都不一樣,例如abc1, abc3 等。現在我想用ajax對這些控制元件的填寫內容進行自動保存,然后發現麻煩大了:控制元件名字太多,沒法一一列舉。請問有高手知道這種情況要怎么處理嗎(假如不把name都改為一樣的話)?
uj5u.com熱心網友回復:
用jq的$(".....")獲取那些自動生成的控制元件,再宣告一個空物件,回圈取出每個控制元件的name和value添加到物件中,用ajax發送這個物件。uj5u.com熱心網友回復:
dom元素也是物件。你可以把這些元素找出來,放在一個陣列里。回圈遍歷就行了。uj5u.com熱心網友回復:
@天際的海浪 @bosaidongmomo 請問有沒有稍微具體的代碼,或者鏈接參考一下,謝謝。uj5u.com熱心網友回復:
要遍歷這種格式命名的變數,可以使用eval(),缺點是不安全,js注入最愛的就是你寫了很多eval。
var a1 = 0;
var a2 = 6;
var a3 = 12;
for(var i = 0;i<3;i++){
console.log(eval("a"+i));//output: 0, 6 , 12
}
更好的解決辦法其實應該是避免定義這樣無意義的變數名,完全可以定義一個陣列存盤這些值,如果值很多,還可以使用json來優化空間。
uj5u.com熱心網友回復:
也可以用jquery中的 .serialize()方法獲取表單中所有控制元件的序列化字串,直接賦給ajax的data即可。
$.ajax({
url: "xxxxxxx",
type: "POST",
data: $("form").serialize(),
success: function (data) {
}
});
uj5u.com熱心網友回復:
var一個變數abc,回圈list時每次回圈后面拼個iuj5u.com熱心網友回復:
jQuery獲取所有的input 就是 $("input")JSP也應該有獲取表單的函式吧 按照表單型別獲取的 不是按照name獲取的
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/32097.html
標籤:Ajax
