您好我正在使用JQuery Form验证器验证表单,并使用knockout js使用按钮调用函数,我想要的是,当单击按钮时,应该调用knockout js函数,并且同时检查是否所有字段都被验证,如果没有验证所有字段,它应该什么都不做。 jquery验证器表单http://www.formvalidator.net/#advanced_programmatically
的链接这是一个字段和调用该函数的按钮。
<input type="text" name="birthday" data-validation="date" data-validation-format="yyyy-mm-dd" placeholder="yyyy-mm-dd" data-validation-help="You must be more than 20 years old" class="form-control" value="<?php if (isset($user['Birthday'])) {echo $user['Birthday'];} ?>">
<div data-bind="ifnot: (loggedIn() == 'true')">
<button data-bind="click : openUpTwoStepAuth " type="submit" id="openUpTwoStepAuth" class="btn registerbtn">
<?php echo lang("register_continue_btn"); ?>
</button>
</div>
这是敲击js函数,它会在单击按钮时尝试调用验证,但在我的情况下,它不会检查验证并继续调用ajax。
self.openUpTwoStepAuth = function(){
$('#openUpTwoStepAuth').validate(function(valid, elem) {
if(!valid){
return;
}
});
self.emailtokenconfirmation(false);
self.tokenError(null);
self.showTwoStepAuth();
$.ajax({
type: 'POST',
url: BASEURL + 'index.php/myprofile/sendEmailForTwoStepAuth/',
contentType: 'application/json; charset=utf-8',
data: ko.toJSON({customerEmail : self.customerEmail()})
})
.done(function(data) {
if(data.success){
self.emailtokenconfirmation(true);
}else{
self.tokenError(data.result);
}
})
.fail(function(jqXHR, textStatus, errorThrown) {
alert("Error code thrown: " + errorThrown);
})
.always(function(data){
});
}
如果它只是一个普通的按钮,用这段代码调用提交函数
,它工作正常<script>
$.validate({
modules : 'toggleDisabled',
disabledFormFilter : 'form.toggle-disabled',
showErrorDialogs : false
});
</script>
但对我来说,我想调用一个js函数,同时检查该字段的验证。