首页 > 解决方案 > jQuery Validate 插件:德语变音不工作

问题描述

我正在使用 jQuery Validation Plugin () 并且我还在 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 验证插件的所有其他东西都像一个魅力。任何帮助,将不胜感激。如果有人需要更多详细信息,请告诉我。

标签: jqueryhtmlregexjquery-validate

解决方案


我认为您可能会误解规则的命名与字段的命名。您的方法(规则)被命名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
        },
        ....
    },....

推荐阅读