проверка формы jquery - PullRequest
       19

проверка формы jquery

1 голос
/ 17 марта 2010

Я использую плагин jquery для быстрой и простой проверки формы Мои формы используют значение ввода по умолчанию в качестве метки, и у меня есть небольшая функция onfocus и onblur javascript, чтобы показать и скрыть это, когда пользователь начинает набирать:

<input name='fnameREG' type='text' id='fnameREG' value='first name' size='70' onfocus='clearInput(this)' onblur='clearInput(this)' />
<input name='lnameREG' type='text' id='lnameREG' value='last name' size='70' onfocus='clearInput(this)' onblur='clearInput(this)' />

Моя проблема с проверкой заключается в том, что при нажатии кнопки отправки плагин считает, что все поля установлены, поскольку они имеют значение по умолчанию. Я посмотрел, но я не мог найти предоставленный метод, чтобы обойти это. Спасибо! ... Или кто-нибудь нашел лучший метод проверки?

А вот функция .addmethod для плагина, которую я безуспешно пытаюсь использовать, чтобы добавить новый метод, который проверяет значение по умолчанию. Есть идеи ???

jQuery.validator.addMethod("deflt", function(value, element) { 
        return this.optional(element) || value == value.defaultValue; 
    }, "You must enter a value");

Пометить ... ниже моя функция clearInput. Да, это в основном то же самое, что и эффект водяного знака, но я использую это сейчас и не вижу особой причины для переключения. Хотя, если я не найду другого способа, я буду использовать это, это будет означать просто удаление разметки:

function clearInput(field){
    if (field.defaultValue == field.value){
        field.value = '';
    }
    else if (field.value == ''){
        field.value = field.defaultValue;
    }
}

Ответы [ 3 ]

3 голосов
/ 17 марта 2010

Я не совсем уверен, что делает clearInput, но вы ищете эффект водяного знака?

http://code.google.com/p/jquery-watermark/

1 голос
/ 17 марта 2010

Вот что я делаю на сайте клиента:

var default_values = new Array();
$(document).ready(function() {
    $("input.inputStyle, textarea").focus(function() {
        if(!default_values[this.id]) {
            default_values[this.id] = this.value;
        }
        if(this.value == default_values[this.id]) this.value = '';
    });
    $("#submit").click(function() {
        var error_queue = new Array();
        var errMessage = 'Please fill out the following fields:\n  + ';
        $("input.inputStyle, textarea").each(function(i) {
            if(!default_values[this.id]) {
                default_values[this.id] = this.value;
            }
            if(this.value == '' || this.value == default_values[this.id])
                error_queue[error_queue.length] = default_values[this.id];
        });
        if(error_queue.length > 0) {
            alert(errMessage + error_queue.join('\n  + '));
            return false;
        }
    });
});
0 голосов
/ 17 марта 2010

Вы пробовали что-то вроде:

jQuery.validator.addMethod("deflt", function(value, element) { 
    return this.optional(element) || value == element.defaultValue; 
}, "You must enter a value");

«значение» должно быть просто строковым значением элемента, поэтому оно не будет иметь свойства «defaultValue», но «элемент» может иметь «defaultValue»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...