繁体   English   中英

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" })

我使用错误的值或属性吗?

errorPlacement未定义element.value

您正在使用value来破坏它,该值未定义,并且不是此函数的有效参数。 errorelement被定义为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM