Показать сообщение отдельно
  #1 (permalink)  
Старый 16.07.2015, 20:21
Интересующийся
Отправить личное сообщение для ru_rikki Посмотреть профиль Найти все сообщения от ru_rikki
 
Регистрация: 25.02.2015
Сообщений: 24

Ассоциативные массивы, не работает
Доброго времени суток, уважаемые форумчане!

есть функция валидации полей вида:

RikkiValidInput(this, /(^(\d+-)*\d+$)/, '', 'input-group has-success', 'input-group', '', '', '');
function RikkiValidInput(element, reg, aler, sClass, eClass, clr, idSpan, num) {
    if (reg.test(element.value)) {
        if (idSpan) {
            var count = num - element.value.length;
            $(idSpan).html(count);
            if (element.value.length <= num) {
                element.parentNode.className = sClass;
            } else {
                element.parentNode.className = eClass;
            }
        } else {
            element.parentNode.className = sClass;
        }
    } else if (element.value) {
        if (clr) {
            element.parentNode.className = clr;
            element.value = "";
            if (idSpan) {
                $(idSpan).hide();
            }
        } else {
            element.parentNode.className = eClass;
        }
        if (aler) {
            alert(aler);
        }
    }
    return false;
}


хочу привести к цивилизованному виду:
var numberSet {
	reg: /(^(\d+-)*\d+$)/,
	aler: '',
	sClass: 'input-group has-success',
	eClass: 'input-group',
	clr: '',
	idSpan: '',
	num: ''
}
RikkiValidation(this, numberSet);
function RikkiValidation(element, valSet) {
    if (reg.test(element.value)) {
        if (valSet.idSpan) {
            var count = valSet.num - element.value.length;
            $(valSet.idSpan).html(count);
            if (element.value.length <= valSet.num) {
                element.parentNode.className = valSet.sClass;
            } else {
                element.parentNode.className = valSet.eClass;
            }
        } else {
            element.parentNode.className = valSet.sClass;
        }
    } else if (element.value) {
        if (valSet.clr) {
            element.parentNode.className = valSet.clr;
            element.value = '';
            if (valSet.idSpan) {
                $(valSet.idSpan).hide();
            }
        } else {
            element.parentNode.className = valSet.eClass;
        }
        if (valSet.aler) {
            alert(valSet.aler);
        }
    }
    return false;
}


ну в общем, во втором исполнении не валидирует, где ошибка?
и насколько безопасно применять ассоциативные массивы?
Ответить с цитированием