我使用两阶段浏览器验证,bootstrap-acknowledgeinput确保该字段不为空并且jqBootstrapValidate处理真正的验证和REGEX模式,并在棕色文本中添加一个表单字段下方给出错误。当用户点击时[REGISTER]按钮我检测到并将JSon数据发送到一些PHP进行服务器端验证。如果失败,则会在不同的
我正在检测错误标记,但我无法弄清楚如何退出click事件并且只是坐下 在不完整的表单上等待用户更正客户端验证。
var RegisterView = Backbone.View.extend({
el: $("#container"),
events: {
'click .btn-primary' : 'saveClient',
'blur input#loginname' : 'userCheck'
},
saveClient: function (e) {
$('ul li').each(function(index){
if( $(this).text().length !== 0 ){
alert('client side error found');
return false;
}
});
var loginname = $('#loginname').val(),
password = $('#password').val(),
first = $('#first').val(),
last = $('#last').val(),
addr1 = $('#addr1').val(),
addr2 = $('#addr2').val(),
city = $('#city').val(),
state = $('#state').val(),
zip = $('#zip').val(),
phone = $('#phone').val(),
phone2 = $('#phone2').val(),
verified = 'N';
registermodel = new RegisterModel({
loginname : loginname,
password : password,
first : first,
last : last,
addr1 : addr1,
addr2 : addr2,
city : city,
state : state,
zip : zip,
phone : phone,
phone2 : phone2,
verified : verified
});
registermodel.save();
return false;
}
答案 0 :(得分:0)
如果你想做的是:
如果在客户端检测到错误,请不要保存
registermodel
。
如果检测到错误,只需退出saveClient
函数(参见hasError
boolean):
saveClient: function (e) {
var hasError = false;
$('ul li').each(function(index){
if( $(this).text().length !== 0 ){
alert('client side error found');
hasError = true;
return false; // this 'return false;' exits the .each loop function NOT the saveClient function
}
});
if (hasError)
return false; // this one does exit the saveClient function
// Code continues here..
// ...
}