2

我正在尝试使用 jQuery Validation DOCS 中的“errorPlacement”,如下所示:

$("#myform").validate({
    errorPlacement: function(error, element) {
        error.insertAfter(element);
    }
});

到目前为止一切顺利,但我真正想要的是在每种情况下在输入和错误标签之间插入一个<br />标签:

<input>
**<br />**
<label class="error">

我尝试过:

error.insertAfter(element.append($('<br />'));

...但没有运气。有没有简单的方法呢?任何帮助深表感谢。

4

2 回答 2

3

你不需要这样做。

只需使用选项errorElement默认错误元素从label(inline) 更改为div(block),以便它自动换行到下一行。

$("#myform").validate({
    errorElement: "div", // default is 'label'
    errorPlacement: function(error, element) {
        error.insertAfter(element);
    }
});

否则,您的代码...

error.insertAfter(element.append($('<br />'));
  • 缺少右括号,)
  • 不是正确的格式...您没有在 jQuery 选择器中添加要附加的字符串,$()

将会...

error.insertAfter(element.append('<br />'));

但是,这仍然无法按预期工作,因为append()试图将内容放入.element


这种方式按您的要求工作...

$("#myform").validate({
    errorPlacement: function(error, element) {
        element.after(error).after('<br/>');
    }
});

演示:http: //jsfiddle.net/1pfvug7r/

于 2014-12-11T19:29:03.183 回答
0

尝试这个:

$("#myform").validate({
    errorPlacement: function(error, element) {
        error.insertAfter(element);
        $('<br/>').insertAfter(element);
    }
});

但是你可以使用 css:

input, 
label.error {float:left;clear:both;}
于 2014-12-11T19:31:01.560 回答