jQuery 验证,element.value 在错误放置中未定义
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" })
我是不是使用了错误的值或属性?
element.value
is undefined in errorPlacement
您正在使用 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 可以做出更好看的东西。在这种情况下,关闭 alert()
会导致在使用 Safari 时无限循环中一遍又一遍地出现新警报。
我已经尝试为我的注册表建立一个验证。我使用 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" })
我是不是使用了错误的值或属性?
element.value
is undefined inerrorPlacement
您正在使用 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 可以做出更好看的东西。在这种情况下,关闭 alert()
会导致在使用 Safari 时无限循环中一遍又一遍地出现新警报。