jquery验证errorPlacement插入元素+ br +错误

时间:2014-12-11 19:22:33

标签: jquery jquery-validate errorplacement

我正在尝试使用jQuery Validation DOCS中的'errorPlacement',就像那样:

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

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

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

我尝试过:

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

......但没有运气。有一个简单的方法吗? 非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

你不需要这样做。

只需使用the errorElement option将默认错误元素从label(内联)更改为div(阻止),以便自动换行到下一行。

$("#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/>');
    }
});

DEMO:http://jsfiddle.net/1pfvug7r/

答案 1 :(得分:0)

试试这个:

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

但你可以使用css:

input, 
label.error {float:left;clear:both;}