有两种方法可以通过ajax发送表单数据:
手动创建查询字符串并将其作为ajax发布数据传递。例如。
$.ajax(function(){
type: 'post',
data:"val1="+$("#input1").val()+"&val2="+$("#input1").val(),
.....
});
使用$('#myForm')。serialize()方法,例如
$.ajax(function(){
type: 'post',
data:$("#myForm").serialize(),
.....
});
通过这两种方式发送表单数据之间的主要区别是什么。
答案 0 :(得分:3)
Serialize将对您的数据进行urlencode。此外,它将遍历所有表单元素。手动创建查询字符串需要您手动执行此操作。这是一个很好的捷径:)
答案 1 :(得分:2)
Jquery serialize()方法使用标准的URL编码表示法创建文本字符串。此链接可能适合您。
答案 2 :(得分:0)
关键区别是$(“#myForm”)。serialize()转义符号。它使url编码
答案 3 :(得分:0)
.serialize()方法以标准URL编码表示法创建文本字符串。它在表示一组表单元素的jQuery对象上运行。表单元素可以有几种类型:
<form>
<div><input type="text" name="a" value="1" id="a" /></div>
<div><input type="text" name="b" value="2" id="b" /></div>
<div><input type="hidden" name="c" value="3" id="c" /></div>
<div>
<textarea name="d" rows="8" cols="40">4</textarea>
</div>
<div><select name="e">
<option value="5" selected="selected">5</option>
<option value="6">6</option>
<option value="7">7</option>
</select></div>
<div>
<input type="checkbox" name="f" value="8" id="f" />
</div>
<div>
<input type="submit" name="g" value="Submit" id="g" />
</div>
</form>
.serialize()方法可以作用于选择了单独表单元素的jQuery对象,例如,和。但是,通常更容易选择标记本身进行序列化:
$('form').submit(function() {
alert($(this).serialize());
return false;
});
这会生成标准的查询字符串:
a=1&b=2&c=3&d=4&e=5
答案 4 :(得分:-1)
他们基本上做同样的事情。
$("#myForm").serialize()
有点清晰,你知道如果名称发生变化,例如<input type="text" name="val" value="1" id="a" />
变为<input type="text" name="val2" value="1" id="a" />
,那么它会将其取出,数据字段将为“val2 = 1”。但如果您使用手动字符串构建,那么它仍然是“val = 1”。所以差别不大。如果你想验证表格,那么第一个选项可能会更好。