所以,我要做的是发送一个AJAX请求,但正如你所看到的,我的表单中有很多字段,我使用数组进行验证,我想使用相同的数组,传递要通过AJAX发送的值:
我从未在JS中使用for循环,但无论如何似乎都很熟悉。
制作循环的方式显然不会起作用:
for (i=0;i<required.length;i++) {
var required[i] = $('#'+required[i]).attr('value');
这将创建我想要的变量,如何使用它们?
很高兴,你们可以帮助我!!!非常感谢你!
required = ['nome','sobrenome','endereco','codigopostal','localidade','telemovel','email','codigopostal2','localidade2','endereco2','nif','entidade','codigopostal3','localidade3','endereco3','nserie','modelo'];
function ajaxrequest() {
for (i = 0; i < required.length; i++) {
var required[i] = $('#' + required[i]).attr('value');
var dataString = 'nome=' + required[0] + '&sobrenome=' + required[1];
}
$.ajax({
type: "POST",
url: "ajaxload/como.php",
data: dataString,
success: function() {
$(".agendarleft").html("SUCESS");
}
});
答案 0 :(得分:4)
为了帮助确保传递适当的元素ID和值,循环遍历各种元素并首先将数据添加到对象。
<强> jQuery的:强>
required = ['nome', 'sobrenome', 'endereco', 'codigopostal', 'localidade', 'telemovel', 'email', 'codigopostal2', 'localidade2', 'endereco2', 'nif', 'entidade', 'codigopostal3', 'localidade3', 'endereco3', 'nserie', 'modelo'];
function ajaxrequest() {
var params = {}; // initialize object
//loop through input array
for (var i=0; i < required.length; i++) {
// set the key/property (input element) for your object
var ele = required[i];
// add the property to the object and set the value
params[ele] = $('#' + ele).val();
}
$.ajax({
type: "POST",
url: "ajaxload/como.php",
data: params,
success: function() {
$(".agendarleft").html("SUCESS");
}
});
}
答案 1 :(得分:2)
更清洁的是在您希望保存的每个字段上放置一个类,并使用它来迭代它们。然后您也不需要指定输入名称,您可以将json对象直接发送到服务;
var obj = {};
$('.save').each(function () {
var key = $(this).attr('id');
var val = $(this).val();
if (typeof (val) == "undefined")
val = "''"
obj[key] = val;
}
然后发送obj作为AJAX调用的数据属性....
答案 2 :(得分:1)
您的代码存在一些问题。 'required'被覆盖,并且也在循环内重新声明。
我建议使用预先编写的库,我在下面列出了一些。
http://jquery.malsup.com/form/#validation
https://github.com/posabsolute/jQuery-Validation-Engine
否则后续会让你走近。您可能需要将数组转换为字符串。
var required = ['nome','sobrenome'];
function ajaxrequest() {
var values;
for (i = 0; i < required.length; i++) {
var values[i] = $('#' + required[i]).attr('value');
}
$.ajax({
type: "POST",
url: "ajaxload/como.php",
data: values,
success: function() {
$(".agendarleft").html("SUCESS");
}
});
}