[英]jQuery validate, element.value is undefined in errorplacement
我已经尝试为我的注册表单建立一个验证。 我正在使用jQuery验证。 当文本框为空时,我希望错误消息显示为我的占位符。 添加文本后,静止图像抛出错误时,我想使用自定义设置。
我的问题是调试此代码时:
.validate({
debug: true,
errorPlacement: function (error, element) {
if (element.value === "") {
element.attr("placeholder", error.text());
}
else {
alert(element.value);
}
}
});
我在elment.value上不确定。 根据Devtools的element.value是文本框中的文本(当在文本框中添加文本时会更改),但是当我看到该值作为左侧的红色圆圈时,它也表示未定义。
我正在为文本框表单使用MVC帮助器:
@Html.TextBoxFor(m => m.SurName, new { @class = "form-control required", placeholder = "Förnamn", @type = "SurName" })
我使用错误的值或属性吗?
在
errorPlacement
未定义element.value
您正在使用value
来破坏它,该值未定义,并且不是此函数的有效参数。 仅error
和element
被定义为errorPlacement
函数的两个参数。 而是使用jQuery val()
获取元素的值。
errorPlacement: function (error, element) {
if (element.val() === "") {
element.attr("placeholder", error.text());
}
else {
// alert(element.val()); // <- Safari fail
console.log(element.val());
}
}
演示: http : //jsfiddle.net/atrL0h1s/
但是,我永远不会使用alert()
因为您可以使用jQuery做更好看的事情。 在这种情况下,使用Safari时,关闭alert()
会导致新的警报无限循环地反复出现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.