Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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_Ajax_Boolean_Scoping - Fatal编程技术网

JavaScript/Jquery最佳实践

JavaScript/Jquery最佳实践,javascript,jquery,ajax,boolean,scoping,Javascript,Jquery,Ajax,Boolean,Scoping,我制作了一些函数来检查ajax请求的表单输入。我仍然在使用JavaScript和一些ajax请求。我正在寻找更好地使用JavaScript函数,并通过函数级范围传递变量的任何建议。提前谢谢你 代码从现在开始工作! 编辑 //表单处理程序 $(“#表格提交”)。提交(功能(e){ e、 预防默认值(); $.ajax({ beforeSend:function(){ 返回(checkAll()); 返回(passwordCheck()); }, 完成:函数(){ }, 类型:“POST”, url

我制作了一些函数来检查ajax请求的表单输入。我仍然在使用JavaScript和一些ajax请求。我正在寻找更好地使用JavaScript函数,并通过函数级范围传递变量的任何建议。提前谢谢你

代码从现在开始工作! 编辑

//表单处理程序
$(“#表格提交”)。提交(功能(e){
e、 预防默认值();
$.ajax({
beforeSend:function(){
返回(checkAll());
返回(passwordCheck());
},
完成:函数(){
},
类型:“POST”,
url:“”,
数据:$(“#表单提交”).serialize(),
成功:功能(数据)
{
//设置会话Php等
警报('php-ran');
返回true;
}
});
}); 
//将所有输入值推送到数组
函数checkAll(){
var-arr=[];
$(“#表单提交:输入”)。每个(函数(){
arr.push($(this.val());
});
返回(校验数组(arr));
}
//检查数组中是否有空字符串
函数校验数组(arr){
对于(变量i=0;i
您可能应该尝试代码检查。谢谢,我将朝这个方向移动我的帖子:)在
beforeSend
中,您可以
返回false
以防止ajax请求注意:将ajax返回的承诺值与
done()
fail()
一起使用,而不是
success
回调等。将布尔值与true进行比较是多余的:
如果(检查和密码)
更具可读性。从Ajax回调中返回值(例如,您的
返回true;
)不会做任何事情。请在
发送前返回
中返回false以取消请求。经修订,我在发送前更新代码中没有正确返回函数值。
//Form Handler
$("#form-submit").submit(function(e) {
    e.preventDefault(); 
    $.ajax({    
        beforeSend: function(){ 
            return (checkAll());
            return (passwordCheck());
        },
        complete: function(){
        },
           type: "POST",
           url: '',
           data: $("#form-submit").serialize(),
           success: function(data)
           {
           // Set Session Php Etc 
           alert('php ran');
           return true;
           }
         });
}); 

//Pushing all Input Values to an Array  
function checkAll() {
    var arr = [];
    $('#form-submit :input').each(function() {
        arr.push($(this).val());
    });
    return (checkArray(arr));   
}

//Checks Array for empty strings 
function checkArray(arr){
    for(var i=0; i < arr.length; i++) {
        console.log(arr[i]);
        if (arr[i].trim() == '') {
            alert('Please Enter All Fields');   
            return false;
        } else {
            return true;
        }   
    }
}

//Matches Password
function passwordCheck() {
    var pass1 = $('#password').val();
    var pass2 = $('#password-check').val();
    if(pass1 != pass2) {
        $('#password').addClass('highlight');
        $('#password-check').addClass('highlight');
        alert("Passwords don't match");
        return false;
    } else {
        $('#password').removeClass('highlight');
        $('#password-check').removeClass('highlight');  
        return true;
    }
}