Javascript 使用包含正则表达式和Jquery的输入字段验证表单
我正试图让Jquery使用正则表达式验证表单,但方式很不传统。表单id为“sumform”,表单中的一个文本区域称为“summary”。我在表单之外还有一个输入字段(id=“terms\u out”),其中包含正则表达式。我似乎无法让Jquery验证器将“terms\u out”的值识别为正则表达式。当用户输入任何内容时,我的表单最终被提交 我试过了,但没用Javascript 使用包含正则表达式和Jquery的输入字段验证表单,javascript,jquery,regex,forms,Javascript,Jquery,Regex,Forms,我正试图让Jquery使用正则表达式验证表单,但方式很不传统。表单id为“sumform”,表单中的一个文本区域称为“summary”。我在表单之外还有一个输入字段(id=“terms\u out”),其中包含正则表达式。我似乎无法让Jquery验证器将“terms\u out”的值识别为正则表达式。当用户输入任何内容时,我的表单最终被提交 我试过了,但没用 $(function() { $.validator.addMethod("regex", function(value, elem
$(function() {
$.validator.addMethod("regex", function(value, element, regexpr) {
return regexpr.test(value);
}, "Sorry, you haven't used all the terms.");
$("#sumform").validate({
rules: {
summary: {
required: true,
regex: '#terms_out',
}
}
});
});
这个很好用
$(function() {
$.validator.addMethod("regex", function(value, element, regexpr) {
return regexpr.test(value);
}, "Sorry, you haven't used all the terms.");
$("#myForm").validate({
rules: {
experience: {
required: true,
regex: /^(?=[\S\s]*\bcell|cells|cell\b)(?=[\S\s]*\bDNA|DNA|DNA\b)(?=[\S\s]*\bsense|senses|sense\b)(?=[\S\s]*\brespond|responds|respond\b)(?=[\S\s]*\benergy|energy|energy\b)(?=[\S\s]*\bgrow|grows|grow\b)(?=[\S\s]*\bdevelop|develops|develop\b)(?=[\S\s]*\breproduce|reproduces|reproduce\b)/
}
}
});
});
我在这方面是新手,所以任何帮助都将不胜感激。谢谢大家! 您可以切换:
regex:“#术语_out”,
致:
regex:$(“#terms_out”).val(),
编辑:
$("#Form").validate({
rules: {
summary: {
required: true,
regex: new RegExp($("#terms_out").val())
}
}
});
这将从文本区域获取值并将其插入到ruls中谢谢您的帮助Saar,但这似乎不起作用。这里是指向我的摘要表单的链接-“terms_out”字段位于左上角。您好,我调试了您的代码,问题是在您将正则表达式添加到
terms_out
之前,正在调用您的validate函数,请确保您的代码以正确的顺序运行再次感谢Saar的帮助。很抱歉,但是您如何知道在regex可用之前正在调用validate函数?我以前成功地使用过这个方法,只是它只是一个简单的数值,输入字段。再次感谢。@firenemus很简单,我调试了代码,在validate函数中添加了一个断点,然后发现当时的输入字段仍然是空的。在调用validate函数之前,在相同的on ready函数中添加一行设置输入字段中的值,您将看到它可以工作感谢您对Saar的解释。是的,google visualization api查询检索regex需要一些时间,但我不认为这就是验证失败的原因。我认为这与Jquery验证器无法识别输入字段中的正则表达式有关。例如,如果我在不执行查询的情况下为输入字段赋值,它仍然不起作用。看这里的例子。。。