jQuery验证器-离开焦点后检查输入字段
我想检查输入字段jQuery验证器-离开焦点后检查输入字段,jquery,jquery-validate,Jquery,Jquery Validate,我想检查输入字段inlineViewProvider\u only office\u URL在离开字段焦点后是否以https://开头 以下是我目前的代码: $(document).ready(function() { jQuery.validator.addMethod("httpsStarting", function (fieldInput, element) { return this.optional(element) || fieldInput.match("^https:
inlineViewProvider\u only office\u URL
在离开字段焦点后是否以https://
开头
以下是我目前的代码:
$(document).ready(function() {
jQuery.validator.addMethod("httpsStarting", function (fieldInput, element) {
return this.optional(element) || fieldInput.match("^https:\/\/");
}, "Field input should start with 'https://'.");
$('#inlineViewProvider_ONLYOFFICE_URL').validate({
rules : { inlineViewProvider_ONLYOFFICE_URL: { httpsStarting: true } }
});
});
如果我将
console:console.log($(“#inlineViewProvider\u ONLYOFFICE\u URL”)
放在规则
值中,字段值将打印到控制台。但是,如果输入字段不是以https://开头,则不会出现错误消息。我建议您尝试使用而不是
根据文件
返回布尔值,例如true
或false
鉴于
返回包含匹配结果的数组,如果不存在匹配项,则返回null
所以null
在这里表示false
这可能是原因
jQuery.validator.addMethod("httpsStarting", function (fieldInput, element) {
return this.optional(element) || /^https?:\/\//i.test(fieldInput);
}, "Field input should start with 'https://'.");
这是我现在可以通过查看代码段来建议的内容。如果它不起作用,请告诉我。我建议您尝试使用代替的解决方案 根据文件 返回布尔值,例如
true
或false
鉴于
返回包含匹配结果的数组,如果不存在匹配项,则返回null
所以null
在这里表示false
这可能是原因
jQuery.validator.addMethod("httpsStarting", function (fieldInput, element) {
return this.optional(element) || /^https?:\/\//i.test(fieldInput);
}, "Field input should start with 'https://'.");
这是我在这一点上通过查看代码片段所能给出的建议。如果它不起作用,请告诉我。只是一个猜测:
about.validate()
讨论
描述:验证所选表单
您的#inlineViewProvider\u ONLYOFFICE\u URL是表单还是“只是”输入字段?只是一个猜测:
about.validate()
讨论
描述:验证所选表单
您的#inlineViewProvider\u ONLYOFFICE\u URL
是表单还是“只是”输入字段
如果输入字段不是以https://
开头,则不会出现错误消息
这是因为您显然已将.validate()
方法附加到输入字段,而不是表单
。换句话说,您尚未初始化插件
$('#inlineViewProvider_ONLYOFFICE_URL').validate({ ....
要初始化插件以处理表单
,您需要将.validate()
附加到一个jQuery选择器,该选择器表示包含inlineViewProvider\u ONLYOFFICE\u URL
元素的
$('#yourForm').validate({
rules: {
inlineViewProvider_ONLYOFFICE_URL: { // <- this must represent the NAME attribute
httpsStarting: true
}
}
});
有关正确使用的提示,请参阅
工作演示:
如果输入字段不是以https://
开头,则不会出现错误消息
这是因为您显然已将.validate()
方法附加到输入字段,而不是表单
。换句话说,您尚未初始化插件
$('#inlineViewProvider_ONLYOFFICE_URL').validate({ ....
要初始化插件以处理表单
,您需要将.validate()
附加到一个jQuery选择器,该选择器表示包含inlineViewProvider\u ONLYOFFICE\u URL
元素的
$('#yourForm').validate({
rules: {
inlineViewProvider_ONLYOFFICE_URL: { // <- this must represent the NAME attribute
httpsStarting: true
}
}
});
有关正确使用的提示,请参阅
工作演示:'因为您可能在填写任何文本之前在准备就绪时验证了空字段。将验证移到字段的onChange,您是否阅读了验证插件文档onfocusout
和onkeyup
均默认启用如果消息以https://
开头,您会收到消息吗?因为您可能在填写任何文本之前验证了空字段onReady。将验证移到字段的onChange,您是否阅读了验证插件文档onfocusout
和onkeyup
均默认启用如果它以https://开头,你会收到消息吗?嗯,根本不起作用。我还尝试在validate
方法中放入onfocusout:true
,但没有成功。实际上,validate
中的标识符被设置为一个输入字段id-也许我必须将其更改为整个html表单id。好的,尝试将validate({})
附加到html表单id,而不是特定的表单字段。细节对我来说是抽象的,您还有什么可以分享的线索吗?好的,表单id也不起作用。如果我在自定义验证器中放入console.log(“Foo”)
,则没有控制台输出。似乎根本不会调用自定义验证器。.match()
和.test()
都在各种方法中使用,所以我认为这不是真正的问题。OP需要初始化插件,否则什么都不会发生。嗯,根本不起作用。我还尝试在validate
方法中放入onfocusout:true
,但没有成功。实际上,validate
中的标识符被设置为一个输入字段id-也许我必须将其更改为整个html表单id。好的,尝试将validate({})
附加到html表单id,而不是特定的表单字段。细节对我来说是抽象的,您还有什么可以分享的线索吗?好的,表单id也不起作用。如果我在自定义验证器中放入console.log(“Foo”)
,则没有控制台输出。似乎根本不会调用自定义验证器。.match()
和.test()
都在各种方法中使用,所以我认为这不是真正的问题。OP需要初始化插件,否则什么都不会发生。啊,我错过了那个。很酷,它帮助我在脑海中再次刷新了这个概念:)啊,我错过了那个。很酷,它帮助我在脑海中再次刷新了这个概念:)