我正在尝试使用 Ajax 处理表单,但在处理复选框时遇到问题。我以为我可以在数组内创建一个数组,将复选框添加到数据对象中,但这似乎不起作用。它不会显示为控制台中对象的一部分或类似的东西。我尝试了一些变化,但没有任何效果。这是目前的样子:
var formData = {
'fname' : $('input[name=fname]').val(),
'lname' : $('input[name=lname]').val(),
'phone' : $('input[name=phone]').val(),
'email' : $('input[name=email]').val(),
'sqft' : $('select[name=sqft]').val(),
'checked': $('input[name=services[]]:checked').each(function(){
checked.push($(this).val());
});
};
我知道我可以使用serialize()
,但老实说,我根本不熟悉从该方法处理数据。由于我需要使用 PHP
处理数据,所以我想坚持使用我所知道的。
这是复选框的标记:
<div class="checks span6">
<p>Check which services you are interested in:</p><br>
<input type="checkbox" name="services[]" value="janitorial"><p>Janitorial</p><br>
<input type="checkbox" name="services[]" value="window"><p>Window cleaning</p><br>
<input type="checkbox" name="services[]" value="carpet"><p>Carpet service</p><br>
<input type="checkbox" name="services[]" value="restroom"><p>Restroom sanitation</p><br>
<input type="checkbox" name="services[]" value="facility"><p>Facility Maintenance</p><br>
<input type="checkbox" name="services[]" value="floors"><p>Floor strippin & re-waxing</p><br>
<input type="checkbox" name="services[]" value="moving"><p>Move in or move out</p><br>
<input type="checkbox" name="services[]" value="other"><p>Other</p><br>
</div>
最佳答案
当前发布的代码中存在语法错误,each
方法在关闭 )
后出现额外的 ;
。您还应该转义 name 属性值的 []
部分,或者在选择器中用引号将其括起来。除此之外,您存储的是 jQuery 对象而不是所选值的数组。您可以使用map
方法。
'checked': $('input[name="services[]"]:checked').map(function(){
return this.value;
}).get()
关于javascript - JavaScript 处理期间数组内的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26080946/