javascript处理过程中数组中的数组
Array inside an array during javascript processing
我正在尝试使用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()
如果你愿意学习新想法,下面是如何使用.serialize()
——非常直接,服务器端(PHP)上的任何东西都不需要更改:
var formData = $('form').serialize(); //THAT's it!!
在您的情况下,这将产生以下query string
——已经进行了URL编码——这就是您当前的数据在POST
ing之前将转换为的内容:
services%5B%5D=janitorial&services%5B%5D=window&services%5B%5D=carpet&services%5B%5D=restroom&services%5B%5D=facility
相关文章:
- 查找数组javascript中包含的元素类型
- 在数组JS中查找三个重复项
- 从javascript中的数组列表中获取值
- 从数组jquery中基于子字符串的移除项
- 从数组NodeJs中获取对象值
- 如何在JavaScript中剥离数组元素中的非整数
- 从多维数组javascript中提取特定值
- 如何在数组javascript中选择伪随机值
- 用javascript向数组(?)中的特定属性添加值
- 从数组JavaScript中删除并返回最后n个项的最快方法
- Lodash:返回对象的第一个键,该对象的值(即数组)中有一个给定的元素(即字符串)
- 从数组/字符串中删除所有小数和单个数字
- 在数组对象中分组
- 从不同的数组 JavaScript 中获取值
- 从数组列表中返回唯一的数组
- 比较数组JavaScript中的对象
- 如何检查符号是否在范围(或数组)中
- AJAX在数组循环中调用,只在上一次完成后调用next
- 在未命名的json数组url中检索值
- 从数组jQuery中删除一组项