添加自定义验证jQuery插件验证

时间:2014-05-07 07:06:40

标签: jquery jquery-validate

我正在使用jQuery插件验证,我想忽略文本框中的默认值。我是jQuery中的addng cusotm验证,如下所示。但它总是返回假。任何人都可以帮助我解决我的代码中的问题

$(document).ready(function () {
    $.validator.addMethod("defaultInvalid", function (value, element) {
        switch (element.value) {
            case "First Name":
                if (element.name == "First Name") return false;
        }
    });
    $("#frmReserv").validate({
        rules: {
            FName: "required defaultInvalid",
        },
        messages: {
            FName: "Please Enter Your Name",
        },
    });
});

Html字段是

<input type="text" value="First Name" name="FName"/>

3 个答案:

答案 0 :(得分:0)

使用HTML5 placeholder属性

<input type="text" placeholder="First Name" name="FName"/>

比你不需要检查默认值。

$("#frmReserv").validate({
        rules: {
                FName: "required",
        },

Poyfill for placeholder https://github.com/mathiasbynens/jquery-placeholder

答案 1 :(得分:0)

你可以尝试这个

<input type="text" placeholder="First Name" value="" name="FName"/>

值=“”将在jquery验证时检查

答案 2 :(得分:0)

此答案适用于旧版本的IE。


这是我过去使用的自定义方法......

jQuery.validator.addMethod("defaultInvalid", function(value, element) {
    return value != element.defaultValue;
});

DEMO:http://jsfiddle.net/45J2Q/


要自动隐藏/显示焦点/模糊的默认文字,请在输入中添加一个类并使用此...

$('.autoclear')
.on('focus', function () {
    if ($(this).val() == $(this).prop('defaultValue')) {
        $(this).val("");
    }
})
.on('blur', function () {
    if ($(this).val() == "") {
        $(this).val($(this).prop('defaultValue'));
    }
});

HTML

<input type="text" value="First Name" name="FName" class="autoclear" />

DEMO 2:http://jsfiddle.net/45J2Q/1/