Javascript jQuery序列化和验证数据
我从序列化数据返回了以下行Javascript jQuery序列化和验证数据,javascript,jquery,Javascript,Jquery,我从序列化数据返回了以下行 rl=250&first_name=&surname=&email=&phone=&country_id=1&agency_name=&sitename= 我想通过这些循环检查是否有一个空字段,如果有,然后我可以抛出一个错误 我可以得到索引和元素,但元素是rl=250或first\u name= 如何检查元素是否已设置。我也尝试过使用serializeArray(),但它返回我[Object,Object,Ob
rl=250&first_name=&surname=&email=&phone=&country_id=1&agency_name=&sitename=
我想通过这些循环检查是否有一个空字段,如果有,然后我可以抛出一个错误
我可以得到索引和元素,但元素是rl=250
或first\u name=
如何检查元素是否已设置。我也尝试过使用serializeArray(),但它返回我
[Object,Object,Object,Object,Object,Object]
,它应该有名称和值,但我不知道如何访问这些您需要使用“&”来拆分它。然后,您应该申请循环,在该循环中,您再次需要使用“=”符号拆分该字符串。然后,若将循环的第二个元素设为空,则可以抛出错误,序列化数组是一种好方法
如您所见,它返回对象数组,因此在您的示例中,它类似于tihs:
[
{
rl: 250
},
{
first_name: undefined
}
]
在此之后,您可以使用for循环值对对象数组进行迭代。我找到了Jack alan的这个函数
函数deparam(查询){
var对,i,keyValuePair,key,value,map={};
//删除前面的问号(如果有)
if(query.slice(0,1)=='?'){
query=query.slice(1);
}
如果(查询!=''){
pairs=query.split('&');
对于(i=0;i1)?decodeURIComponent(keyValuePair[1]):未定义;
映射[键]=值;
}
}
返回图;
}
您可以这样做:
$(文档).ready(函数(e){
$(“#frm登录”).submit(函数(){
var DATA=$(this.serializeArray();
len=DATA.length,
dataObj={};
对于(i=0;我已经尝试过了,但我得到的只是我所描述的[Object,Object…]。是否我正在通过其id var str=$(“#signup_form”).serializeArray();dos类似这样的内容:var data=$(“#signup_form”).serializeArray()将from序列化,并将其视为数据[i]你应该在序列化之前验证你的数据。你应该发布一些相关的代码。我想基本上使用以下方法进行检查:如果(!$('signup_form:input[value=”“]).length)
,然后序列化。如果不是,你的表单无效。那么所需的属性呢?在我看来是个XY问题,你没有问“好”的问题
function deparam(query) {
var pairs, i, keyValuePair, key, value, map = {};
// remove leading question mark if its there
if (query.slice(0, 1) === '?') {
query = query.slice(1);
}
if (query !== '') {
pairs = query.split('&');
for (i = 0; i < pairs.length; i += 1) {
keyValuePair = pairs[i].split('=');
key = decodeURIComponent(keyValuePair[0]);
value = (keyValuePair.length > 1) ? decodeURIComponent(keyValuePair[1]) : undefined;
map[key] = value;
}
}
return map;
}
$("#frm-login").submit(function() {
var DATA = $(this).serializeArray();
len = DATA.length,
dataObj = {};
for (i=0; i<len; i++) { // acceesing data array
dataObj[DATA[i].name] = DATA[i].value;
}
if ( !dataObj['user-id'].trim() || !dataObj['user-pass'].trim() ) { //cheking if empty field
alert('empty');
}else{
alert('full');
}
//console.log(DATA);
$.ajax({
type: "POST",
url: 'user-login-process.php',
data: DATA,
success: function(response){
//alert(response); // show response from the php script.
}
});
return false; // avoid to run the actual submit of the form.
});
}); //document