Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript .submit函数在kendo validator无效时未运行_Javascript_Jquery_Kendo Ui_Kendo Grid - Fatal编程技术网

Javascript .submit函数在kendo validator无效时未运行

Javascript .submit函数在kendo validator无效时未运行,javascript,jquery,kendo-ui,kendo-grid,Javascript,Jquery,Kendo Ui,Kendo Grid,我有一个通过剑道验证器验证的表单,除了通常标记无效字段外,我还需要在表单无效时发生一些事情。不幸的是,除非整个表单有效,否则通过submit方法绑定的函数似乎无法启动 例如,这种行为似乎发生在Telerik自己的一个演示中: 它包含以下代码: var validator = $("#ticketsForm").kendoValidator().data("kendoValidator"), status = $(".status"); $("form").submit(function(ev

我有一个通过剑道验证器验证的表单,除了通常标记无效字段外,我还需要在表单无效时发生一些事情。不幸的是,除非整个表单有效,否则通过submit方法绑定的函数似乎无法启动

例如,这种行为似乎发生在Telerik自己的一个演示中:

它包含以下代码:

var validator = $("#ticketsForm").kendoValidator().data("kendoValidator"),
status = $(".status");

$("form").submit(function(event) {
    event.preventDefault();
    if (validator.validate()) {
        status.text("Hooray! Your tickets has been booked!")
            .removeClass("invalid")
            .addClass("valid");
    } else {
        status.text("Oops! There is invalid data in the form.")
            .removeClass("valid")
            .addClass("invalid");
    }
});

当表单上的所有内容都已填写且有效时,if块将运行,但else块从不激发。事实上,插入一些alerts()表明,除非整个表单有效,否则整个函数不会运行。这似乎与submit方法()的jQuery文档不同,后者在任何提交尝试上都会运行功能类似的函数。我能猜到的唯一一件事是剑道验证程序的某些方面阻止了这种情况的发生,但我似乎无法找到替代方案。

看看如何正确地建立“规则”


看起来kendo会在单击按钮时自动验证表单,当验证失败时,kendo会停止事件传播,并且jquery submit不会触发

您可以将按钮替换为锚点:

<a id="buttonSubmit" class="k-button k-primary">Submit</a>
并重命名
status
变量,因为它是保留字:

status2 = $(".status");

我不确定这会有什么帮助。我对元素如何被标记为无效没有问题,问题是绑定提交的函数没有在它应该运行的时候运行。似乎就是这样!谢谢
status2 = $(".status");