jQuery Validate插件:德国Umlauts无法正常工作

时间:2018-06-26 13:56:08

标签: jquery html regex jquery-validate

我正在使用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验证插件的东西都像魅惑一样工作。任何帮助,将不胜感激。如果有人需要更多详细信息,请告诉我。

1 个答案:

答案 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
        },
        ....
    },....