4

不幸的是,我在找到解决这个问题的方法方面没有取得太大的成功,所以又来了……

基本上,我正在尝试用我的错误消息定位并替换现有输入 [label] 标记的内容,而不是依赖 validate 插件的默认行为,即。在我的输入字段上方或下方向 DOM 添加另一个 [标签]。

这是表格,没什么花哨的!

<form id="loginForm" action="testing.htm">

<label for="username">Username</label>
    <input id="username" name="username" type="text">

<label for="password">Password</label>
    <input id="password" name="password" type="text">

<label for="clientid">Client ID</label>
    <input id="clientID" name="clientID" type="text">

<input id="submitButton" name="submitButton" type="submit" value="Login">

...这是脚本

<script type="text/javascript">

$("#loginForm").validate({

    rules: {
        username: "required",
        password: {
            required: true,
            digits: true
        },

        clientID: "required"
        },

    messages: {
        username: "Please enter your username",
        password: "Please enter your password",
        clientID: "Please enter a client ID"            
    },

    errorPlacement: function(error, element) {},        

});

如您所见,我已将 errorPlacement 代码留空,希望有人可以帮助我填写空白。我尝试了以下但没有成功。

errorPlacement: function(error, element) {
    error.insertBefore( element );
}

任何关于这方面的建议都会很棒!我开始拔头发了;o(

干杯德布拉德

4

1 回答 1

1

您应该能够在回调中执行类似的操作。

$('label[for="' + element.attr("id") + '"]').text(error.text());

不过,我质疑这种方法,因为一旦错误得到修复,我认为你的标签就会消失。您可以使用我提供的方法找到另一个标签并将其隐藏,但您还需要覆盖成功回调以再次显示原始标签。

于 2011-12-12T01:21:11.783 回答