【发布时间】:2013-03-01 10:41:44
【问题描述】:
我正在为我的客户构建一个简单的表单,他们希望在文本字段中显示错误消息。使用 jQuery 的 Validation 插件可以实现这一点吗?
谢谢!
【问题讨论】:
-
哈哈.. 封闭式问题的封闭式答案.. ;)
-
在表单字段中使用占位符文本。对于验证错误,最好不要在字段中显示消息,而是突出显示字段并在字段旁边显示错误。
我正在为我的客户构建一个简单的表单,他们希望在文本字段中显示错误消息。使用 jQuery 的 Validation 插件可以实现这一点吗?
谢谢!
【问题讨论】:
引用 OP:
“他们想在文本字段中显示错误消息。这样可以吗? 可以使用 jQuery 的 Validation 插件来实现这一点吗?”
是的。可以使用插件的errorPlacement回调函数/选项。
不,我永远不会这样做。这使得用户几乎不可能与表单正确交互。该错误会清除用户已经输入的所有数据,并且用户必须删除消息文本才能输入数据。我相信你可以想出聪明的方法来克服这些问题,但是 IMO,从 UI 的角度来看,这是一个非常糟糕的设计。显示您的客户this demo,然后向下滚动并显示他们my second demo。
$(document).ready(function () {
$('#myform').validate({ // initialize the plugin
// rules & options,
errorPlacement: function(error, element) {
element.val(error.text());
}
});
});
编辑:您可以改为使用placeholder 属性。该消息仍将在输入元素的内部,但不会被视为value,因此不会过多地干扰用户交互。 但是,这种方法的一大缺点是,如果您有一个规则来验证数据格式,例如 email、minlength 等......用户将永远不会看到验证消息,因为占位符顶部的字段内有一个值!
errorPlacement: function(error, element) {
element.attr("placeholder", error.text());
}
演示 2:http://jsfiddle.net/n5saemj7/
替代方案:
使用消息气泡显示错误:http://jsfiddle.net/kyK4G/
更多信息:How to display messages from jQuery Validate plugin inside of Tooltipster tooltips?
【讨论】:
他们告诉你这是一个不好的方法,也许是这样。
但是你可以使用占位符,而不是替换已经在里面的内容,只需要改变这个:
errorPlacement: function(error, element) {
element.val(error.text());
}
为此:
errorPlacement: function(error, element) {
element.attr("placeholder",error.text());
}
希望对你有所帮助,保重!
【讨论】:
required 时,这会很好用。但是,这种方法的一大缺点是,如果您有一个规则来验证数据格式,例如 email、minlength 等......用户将永远无法看到错误消息。
是的,当然这是可能的,因为您验证了文本字段并且它被错误捕获 只需将错误消息分配为该文本字段或占位符的值。
$("#yourtextfield").val("This field can't be empty.");
【讨论】:
是的,你可以。你的技能看起来很原始。
让我们走简单的道路,因为您的问题听起来很简单。出错时,给出将消息字符串作为值分配给输入字段的条件。
类似
var err = "err_msg";
$('#elementId').val(err);
请参阅.val('value')http://api.jquery.com/val/ 部分
【讨论】: