Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery序列化和验证数据_Javascript_Jquery - Fatal编程技术网

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