Проверка формы Javascript с оформлением Jquery - PullRequest
1 голос
/ 01 ноября 2011

Пожалуйста, извините за отсутствие приправы для JavaScript. В настоящее время у меня есть две части для проверки:
1. функции, применяющие css-оформление к полям ввода и делающие div, содержащий сообщение об ошибке, видимым
2. функция, которая объединяет вышеупомянутые функции и вызывается в форме, например: onSubmit = "(return validate ();)"

Я хочу исправить две вещи:

1. Рефакторинг кода, чтобы он стал меньше

2. ИСПРАВЛЕНО с обновлением кода. Применить оформление текста селектора ко всем пустым полям. В настоящее время оформление применяется к первому пустому полю, а после ввода текстового значения оно попадает в следующее поле. Каждое пустое поле должно быть проверено и иметь правильное оформление.

/** VALIDATION DECORATION **/

function validateAccountNameRequired(textInputId, textInputLabelName) {
    var valid = true;

    if (!$('input#accountName').val()) {
        $('input#accountName').addClass('inputError');
        $('ul#accountNameList').find('div.error').attr('style', '');
        valid = false;
    } else if ($('input#accountName').val()) {
        $('input#accountName').removeClass('inputError');
        $('ul#accountNameList').find('div.error').hide();
    }
    return valid;
}

function validateAccountBusOrgIDRequired(textInputId, textInputLabelName) {
    var valid = true;

    if (!$('input#accountBusOrgID').val()) {
        $('input#accountBusOrgID').addClass('inputError');
        $('ul#busOrgList').find('div.error').attr('style', '');
        valid = false;
    } else if ($('input#accountBusOrgID').val()) {
        $('input#accountBusOrgID').removeClass('inputError');
        $('ul#busOrgList').find('div.error').hide();
    }

    return valid;
} /** VALIDATORS **/

function validate() {

        valid = validateAccountNameRequired('accountName', 'Account Name');
        valid1 = validateAccountBusOrgIDRequired('accountBusOrgID', 'Account Bus Org ID');

    return valid && valid1;
}

1 Ответ

0 голосов
/ 02 ноября 2011

Я решил свою проблему. Надеюсь, кто-то еще может извлечь выгоду:

  1. Проверяет все поля одновременно

  2. Рефакторинг для лучшего сцепления, просто загрузите значения в функцию validate () и повторно используйте одну функцию validateTextRequired ():


    function validateTextRequired( textInputId, errorListId)
        {
            var valid = true;</p>

        if( !$('input' + '#' + textInputId).val())
        {
            $('ul' + '#' + errorListId).find('label').addClass('error');
            $('input' + '#' + textInputId).addClass('inputError');
            $('ul' + '#' + errorListId).find('div.error').attr('style','');
            valid = false;
        } else if ($('input#' + textInputId).val()) {
            $('ul' + '#' + errorListId).find('label').removeClass('error');
            $('input' + '#' + textInputId).removeClass('inputError');
            $('u' + 'l#' + errorListId).find('div.error').hide();
        }
        return valid;
    }

           function validate()
           {
        valid = validateTextRequired( 'accountName', 'accountNameList');
        valid1 = validateTextRequired( 'accountBusOrgID', 'busOrgList');
        valid2 = validateTextRequired( 'acctMgr', 'accountMgrList');
            }   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...