Javascript js和ajax验证后未提交表单
在我验证了用户已将数据输入到所需字段但表单未提交之后,我使用ajax验证用户凭据。我创建了一个变量Javascript js和ajax验证后未提交表单,javascript,jquery,ajax,forms,Javascript,Jquery,Ajax,Forms,在我验证了用户已将数据输入到所需字段但表单未提交之后,我使用ajax验证用户凭据。我创建了一个变量submit\u form,该变量用于确定是否执行了默认表单操作,但当将其设置为true并将其记录在控制台日志中时,它似乎仍在继续其默认值false,为什么会这样?如何更改它,以便在用户名和密码正确后提交我的表单。 这是我在浏览器中的控制台截图 以下是我的代码: /*global $*/ /*global _*/ $(document).ready(function() { 'use s
submit\u form
,该变量用于确定是否执行了默认表单操作,但当将其设置为true
并将其记录在控制台日志中时,它似乎仍在继续其默认值false
,为什么会这样?如何更改它,以便在用户名和密码正确后提交我的表单。
这是我在浏览器中的控制台截图
以下是我的代码:
/*global $*/
/*global _*/
$(document).ready(function() {
'use strict';
$('#login-form').on('submit', function(event) {
var form_items = {
username: { required: true, name: 'Username' },
password: { required: true, name: 'Password' },
token: {}
};
var $login_form = $(this);
var submit_form = false;
var errors;
var display = '';
var data;
var validation = new Validation( form_items );
validation = validation.check( $login_form['context'] );
// If any element has the class for errors, remove the class
$('.has-error').removeClass('has-error');
if ( validation.passed() ) {
data = JSON.stringify( validation.getData() );
$.ajax({
method: "POST",
url: "ajax/login.ajax.php",
data: { info: data }
}).done(function( response ) {
response = JSON.parse(response);
// if the error list display is there, remove it
$('.bg-danger').parent().remove();
if ( _.has(response, 'errors') ) {
errors = response['errors'];
display = '<div class="form-group"><ul class="bg-danger">';
if ( _.isArray(errors) || _.isObject(errors) ) {
_.each( errors, function(elem, index, list) {
display += '<li>' + elem + '</li>';
});
} else {
display += '<li>' + errors + '</li>';
}
display += '</ul></div>';
$login_form.prepend( display );
} else {
submit_form = true;
}
});
console.log( submit_form );
} else {
// if the error list display is there, remove it
$('.bg-danger').parent().remove();
errors = validation.getErrors();
display = '<div class="form-group"><ul class="bg-danger">';
_.each( errors, function(elem, index, list) {
var $form_element = $('#'+index); // get form element
$form_element.parent().parent().addClass('has-error');
display += '<li>' + elem + '</li>';
});
display += '</ul></div>';
$login_form.prepend( display );
}
if ( !submit_form ) {
event.preventDefault();
}
});
});
/*全局$*/
/*全球的_*/
$(文档).ready(函数(){
"严格使用",;
$(“#登录表单”)。在('submit',函数(事件){
变量形式_项={
用户名:{必需:true,名称:'username'},
密码:{必需:true,名称:'password'},
令牌:{}
};
var$login\u form=$(此);
var submit_form=false;
var误差;
变量显示=“”;
var数据;
var验证=新验证(表格项目);
验证=验证。检查($login_form['context']);
//如果任何元素的类有错误,请删除该类
$('.has-error').removeClass('has-error');
if(validation.passed()){
data=JSON.stringify(validation.getData());
$.ajax({
方法:“张贴”,
url:“ajax/login.ajax.php”,
数据:{info:data}
}).完成(功能(响应){
response=JSON.parse(response);
//如果存在错误列表显示,请将其删除
$('.bg danger').parent().remove();
if(uu.has(响应“errors”)){
错误=响应['errors'];
显示=';
如果(u.isArray(错误)| | u.isObject(错误)){
_.每个(错误、功能(元素、索引、列表){
显示+='- '+elem+'
';
});
}否则{
显示+='- '+错误+'
';
}
显示+='
';
$login_form.prepend(显示);
}否则{
提交表格=真;
}
});
控制台日志(提交表格);
}否则{
//如果存在错误列表显示,请将其删除
$('.bg danger').parent().remove();
errors=validation.getErrors();
显示=';
_.每个(错误、功能(元素、索引、列表){
var$form_element=$('#'+index);//获取表单元素
$form_element.parent().parent().addClass('has-error');
显示+='- '+elem+'
';
});
显示+='
';
$login_form.prepend(显示);
}
如果(!提交表格){
event.preventDefault();
}
});
});
因为您无法从Ajax请求中返回。@您需要通过代码提交表单,对如何处理该问题有何建议