.submit 函数不是 运行 当与 kendo 验证器无效时
.submit function not running when invalid with kendo validator
我有一个通过 kendo 验证器验证的表单,除了通常标记无效字段之外,我还需要在表单无效时发生一些事情。不幸的是,除非整个表单有效,否则似乎有些东西会阻止通过提交方法绑定的函数被触发。
例如,这种行为似乎出现在 Telerik 自己的演示之一中:
http://demos.telerik.com/kendo-ui/validator/index
它包含代码:
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 块 运行s 当表单上的所有内容都已填写且有效时,但 else 块永远不会触发。事实上,插入一些 alerts() 表明整个函数不会 运行 除非整个表单有效。这似乎与提交方法 (https://api.jquery.com/submit/) 的 jQuery 文档形成对比,其中功能相似的函数 运行s 在任何提交尝试中。我唯一能猜到的是 kendo 验证器阻止了这种情况的发生,但我似乎无法找到替代方案。
看看如何正确建立"rules"
http://docs.telerik.com/kendo-ui/framework/validator/overview#error-messages
看起来 kendo 在单击按钮和验证失败时自动验证表单,kendo 停止事件传播并且 jquery 提交未触发。
您可以用锚点替换按钮:
<a id="buttonSubmit" class="k-button k-primary">Submit</a>
然后绑定点击事件手动验证:
$("#buttonSubmit").click(function(event) {...
并重命名status
变量,因为它是保留字:
status2 = $(".status");
我有一个通过 kendo 验证器验证的表单,除了通常标记无效字段之外,我还需要在表单无效时发生一些事情。不幸的是,除非整个表单有效,否则似乎有些东西会阻止通过提交方法绑定的函数被触发。
例如,这种行为似乎出现在 Telerik 自己的演示之一中: http://demos.telerik.com/kendo-ui/validator/index
它包含代码:
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 块 运行s 当表单上的所有内容都已填写且有效时,但 else 块永远不会触发。事实上,插入一些 alerts() 表明整个函数不会 运行 除非整个表单有效。这似乎与提交方法 (https://api.jquery.com/submit/) 的 jQuery 文档形成对比,其中功能相似的函数 运行s 在任何提交尝试中。我唯一能猜到的是 kendo 验证器阻止了这种情况的发生,但我似乎无法找到替代方案。
看看如何正确建立"rules"
http://docs.telerik.com/kendo-ui/framework/validator/overview#error-messages
看起来 kendo 在单击按钮和验证失败时自动验证表单,kendo 停止事件传播并且 jquery 提交未触发。
您可以用锚点替换按钮:
<a id="buttonSubmit" class="k-button k-primary">Submit</a>
然后绑定点击事件手动验证:
$("#buttonSubmit").click(function(event) {...
并重命名status
变量,因为它是保留字:
status2 = $(".status");