我正在使用jQuery验证插件(),并且在StackOverflow(jQuery validate plugin: accept only German letters)上已经找到了答案,但是所提供的解决方案仍不适用于我。
我的语言中有诸如Ö,Ü,ä,ß之类的变音符号(特殊字符),并且我使用以下代码,因此在输入字段中不允许输入数字。不幸的是,一旦有人输入变音符号,我会收到一条消息,不允许输入数字。有人可以告诉我我做错了什么吗?
jQuery代码:
<script type="text/javascript">
$(document).ready(function(){
$.validator.addMethod('city', function(value, element, param) {
var nameRegex = /^[a-zA-ZäüöÄÜÖß]+$/;
return value.match(nameRegex);
}, 'No numbers are allowed.');
});
</script>
我还尝试了以下方法:
<script type="text/javascript">
$(document).ready(function(){
$.validator.addMethod('city', function(value, element, param) {
var nameRegex = /^[a-zA-Z\u0196\u0228\u0214\u0246\u0220\u0252\u0223]+$/;
return value.match(nameRegex);
}, 'No numbers are allowed.');
});
</script>
我的HTML输入字段:
<div class='row'>
<div class='col-md-12'>
<label>City::<span class='color-red'>*</span></label>
<input type='text' name='city' id='city' class='form-control' required>
</div>
</div>
我的网站有charset = utf-8!知道我在做什么错吗?除此问题外,其他所有带有jquery验证插件的东西都像魅惑一样工作。任何帮助,将不胜感激。如果有人需要更多详细信息,请告诉我。
答案 0 :(得分:0)
我认为您可能会误解规则的命名和字段的命名。您的方法(规则)被命名为city
...,只是因为您的字段也被命名为city
,并不意味着该规则会自动应用于该字段。您仍然必须在任何字段上声明它。
我建议您调整命名并遵循以下选项之一...
1。按班级内联
创建规则:
$.validator.addMethod('your_rule', function(value, element) {...
通过class
分配规则:
<input type='text' name='city' class='form-control your_rule' ....
param
函数中没有.addMethod()
参数,因为您的函数不接受参数。如果您接受参数,则无法通过class
分配规则。
2。在rules
对象中
创建规则:
$.validator.addMethod('your_rule', function(value, element) {....
通过.validate()
方法分配规则:
$('#yourForm').validate() {
rules: {
city: { // <- FIELD NAME
your_rule: true // <- RULE NAME
},
....
},....
如果您需要将参数传递到自定义方法/规则/函数中,则可以使用#2。
$.validator.addMethod('your_rule', function(value, element, param) {....
$('#yourForm').validate() {
rules: {
city: { // <- FIELD NAME
your_rule: param // <- RULE NAME
},
....
},....