3

有一个基本的注册表单,尝试验证它。

我正在使用表单serializeArray()方法并遍历表单并查找值是否为空。

代码

<form name="reg" id="regform">
    <fieldset>

        <label for="firstname">First Name</label>

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

    </fieldset>
    <fieldset>

        <label for="lastname">Last name</label>

        <input type="text" name="lastname" value="Last Name"/>

    </fieldset>
    <fieldset>
        <label for="date">Age</label>

        <input type="text" name="age"/>

    </fieldset>
</form>

查询代码

var formElements = $("#regform").serializeArray();

$(formElements).each(function(x)
{
    if(formElements[x]["value"] == "")
    {
        $("[name='" + formElements[x]['name'] +"']").addClass('error');
    }
});

从上面的代码中,当值为空时,我可以添加类“.error”。

现在我希望代码检查文本字段值不是默认值,就像在我的情况下默认值是“名字”“姓氏”..

所以我想检查默认值并将错误类添加到相应的元素,甚至将光标重新聚焦在第一个空值文本字段上

提前致谢

4

1 回答 1

0

我强烈建议使用http://docs.jquery.com/Plugins/Validation。您可以测试各种事物,例如空白值,甚至可以扩展它以检测默认值。

例如:

$.validator.addMethod("name", function(value) { return value != "First Name"; }, 'Please enter your first name.');


或者,您可以使用jQuery 的data()函数针对默认值进行测试:

工作演示:http: //jsfiddle.net/WpQ2n/2/

var input = $(".name"),
    defaultval = input.data("default", input.val()); 

// Can't submit forms in jsfid, so i just used a click event. 
// Change to .submit()

$("input[type='submit']").on("click",function(e){
    if(input.val()== input.data("default")){
        input.addClass("error"); 
    }
    else{
    // Yay it validated...
        input.removeClass("error");
    }
    e.preventDefault();
});
于 2013-05-31T17:43:58.177 回答