2013-05-31 3 views
3

Имейте базовую регистрационную форму, пытаясь ее проверить.Как проверить поля формы на значения по умолчанию, используя serializeArray().?

Я использую форму serializeArray() метод и петлю через форму и найти, если значения равны нулю.

HTML КОД

<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> 

Jquery код

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

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

Из приведенного выше кода я могу добавить класс ".error", когда значение равно нулю.

Теперь я хочу код для проверки текстовых полей значения не значения по умолчанию, как в моем случае значения по умолчанию «Имя» «Фамилия» ..

Так я хочу, чтобы проверить, даже для значения по умолчанию и добавить класс ошибок к соответствующему элементу и даже фокус назад курсора на текстовом поле первого нулевого значения

заранее спасибо

+0

Вы можете захотеть посмотрите на HTML5 'placeholder 'как альтернативу помещению значений placeholder в атрибут' value'. Если это необходимо для работы с более старыми версиями IE, вы можете использовать такой плагин, как [этот] (https://github.com/andrewrjones/jquery-placeholder-plugin). –

+0

Ничего, я думаю, что вы просто имели в виду «Имя» и т. Д. В качестве примеров, и на самом деле это было бы имя человека. –

+0

Спасибо @MattBrowne за то, что нашли время для моего вопроса. Сначала мой подход заключался в использовании «placeholder», но мои пользователи в основном на IE8, около 80%. Я не хочу использовать плагин, поскольку я уже использую большое количество плагинов для других основных модулей. поэтому подумал о том, что валидация выполняется без плагина. – KrankyCode

ответ

0

я настоятельно рекомендую использовать http://docs.jquery.com/Plugins/Validation. Вы можете тестировать различные вещи, такие как пустые значения, и даже расширять его для определения значений по умолчанию.

Например:

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


В качестве альтернативы вы можете просто тест на значение по умолчанию с jQuery's 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(); 
}); 
Смежные вопросы