0

我的表单中有一个文本字段(电子邮件),用于检查输入的值是否有效,如果是,那么它必须再次验证我的数据库。

问题是,当我输入错误时,它不会显示我在消息下配置的错误消息,而是选择默认的 msg。

$("#myform").validate({
    rules: {
        email:{
            required: true,
            email: true,
             type: "post",
            remote:{
                url:"myservlet?verifyEmail=checkEmail",
                /* data: "verifyEmail=checkEmail", */
                type: "post",
            }  
        },
     messages:{
         email:{
             required: "Enter a valid email",
             remote: "This user is already taken"
         }
     }
    },
    highlight: function(element){
    $(element).closest('.control-group').removeClass('success').addClass('error');
    },
    success: function(element){
        element
        .closest('.control-group').removeClass('error')/* .addclass('error') */;        
        }
});

   if(('#myform').validated())
       ('#myform').submit();   

我试图检查网络流量,我没有看到由于此请求而产生的任何流量。在 highlight 和 success 下配置的引导类工作正常。这是我第一次使用这个插件。

更新 1:输入控件

                 <div class="control-group">
        <label class="control-label" for="email"> email:</label>
           <div class="controls">
            <input type="text" id="email" class="input-xlarge span2" name="email"/>
            </div>
         </div>
        <tr>
            <td></td>
            <td><input type="button" Value="Refresh" /></td>
        </tr>

更新 2:

我修改了我的代码。现在验证规则正在工作,但我仍然面临 ajax 请求未被触发的问题。对此有任何注意吗?

4

1 回答 1

1

试试这个 - 我稍微更新了对象结构,messages是 的兄弟rules,而不是孩子:

$("#myForm").validate({
    rules: {
        email: {
            required: true,
            email: true,
            type: "post",
            remote: {
                url: "myservlet?verifyEmail=checkEmail",
                /* data: "verifyEmail=checkEmail", */
                type: "post",
            }
        }
    },
    messages: {
        email: {
            required: "Enter a valid email",
            remote: "This user is already taken"
        }
    }
});

演示

于 2013-08-26T22:07:56.050 回答