JavaScript/Jquery最佳实践
我制作了一些函数来检查ajax请求的表单输入。我仍然在使用JavaScript和一些ajax请求。我正在寻找更好地使用JavaScript函数,并通过函数级范围传递变量的任何建议。提前谢谢你 代码从现在开始工作! 编辑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
//表单处理程序
$(“#表格提交”)。提交(功能(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;
}
}