我有以下表格
<input type="text" class="attr_values[]" value="1" />
<input type="text" class="attr_values[]" value="2" />
我试图传递“attr_values”数组中的所有值,以便可以通过Ajax发布,但以下内容不起作用。
$.ajax({
url: 'index.php',
type: 'POST',
data:{
attr_values: $('.attr_values').val()
如何做到这一点?
答案 0 :(得分:0)
使用
var = $( '#your_form_id_or_class' ).serialize() ;
and assign this to **attr_values**
答案 1 :(得分:0)
您必须使用通配符选择器:
$('input[name^="attr_values"]').serialize();
上面的选择器会找到每个<input>
名称以attr_values开头的人,并为您序列化,所以你只需这样做:
data: $('input[name^="attr_values"]').serialize(),
答案 2 :(得分:0)
您的输入元素类名称
可能不需要[]
<input type="text" class="attr_values" value="1" />
<input type="text" class="attr_values" value="2" />
您不需要使用serialize jQuery API
如果值传递给jQuery.ajax的data
参数是一个数组,jQuery会根据传统设置的值使用相同的键序列化多个值。
var attrValueArray = $("input.attr_values").map(function(){
return this.value;
}).get();
$.ajax({
url: 'index.php',
type: 'POST',
data:{
attr_values: attrValueArray
答案 3 :(得分:0)
首先,您必须为所有输入元素设置name属性,并从class属性中删除[]
,这绝对是错误的类使用:
<input type="text" name="attr_values[]" class="attr_values" value="1" />
<input type="text" name="attr_values[]" class="attr_values" value="2" />
然后,使用jQuery将输入值序列化为:
var __data = $('input[name^="attr_values"]').serialize();
// Or if input has parent form
var __data = $('#form-id').serialize();
$.ajax({
url: 'index.php',
type: 'POST',
data: __data