按下按钮时自动验证

时间:2016-09-10 19:32:17

标签: javascript jquery validation knockout.js

您好我正在使用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函数,同时检查该字段的验证。

1 个答案:

答案 0 :(得分:0)

这似乎已在这里得到解答

Knockout + Jquery Validate

使用validate中的submitHandler在成功验证时调用视图模型函数。