2015-03-17 8 views
0

Я написал правило проверки jQuery, которое отображает неудачную проверку, если сумма, введенная на вход, меньше 5000 или более 500000. Я пытаюсь установить подтверждение для переменной, которая должна быть динамической в ​​правиле, но я получаю сообщение об ошибке: я не определил переменную validationMessage.Добавить динамический текст проверки в пользовательское правило проверки jQuery

# Error 
Uncaught ReferenceError: validationMessage is not defined 

# Custom Rule 
$.validator.addMethod("requestAmount", function(value, element) { 
    var cleanAmount = value.replace(/\,/g,''); 
    var validationMessage = ''; 
    console.log(cleanAmount) 
    if (cleanAmount < 5000) { 
    var validationMessage = 'Please enter an amount greater than $5,000.00'; 
    return false; 
    } else if (cleanAmount > 500000) { 
    var validationMessage = 'Please enter an amount less than $500,000.00'; 
    return false; 
    } else { 
    return true; 
    }; 
}, validationMessage); 

ответ

1

var validationMessage Объявляет вне области видимости функции и удалить var от каждого времени, установленного значение validationMessage:

var validationMessage; 

# Custom Rule 
$.validator.addMethod("requestAmount", function(value, element) { 
    var cleanAmount = value.replace(/\,/g,''); 
    validationMessage = ''; 
    console.log(cleanAmount) 
    if (cleanAmount < 5000) { 
    validationMessage = 'Please enter an amount greater than $5,000.00'; 
    return false; 
    } else if (cleanAmount > 500000) { 
    validationMessage = 'Please enter an amount less than $500,000.00'; 
    return false; 
    } else { 
    return true; 
    }; 
}, function(){return validationMessage;}); 
+0

Хорошо я удалил ВАР из функции (имеет смысл). Я также переместил var = validationMessage вне функции. Теперь он не показывает пустые сообщения для проверки - как будто переменная не сбрасывается в функции. Должен ли я передать переменную в функцию в качестве аргумента? – Questifer

+0

Да, в последней строке вы отправляете validationMessage, прежде чем изменять его, поэтому создайте функцию (validationMessage), чтобы решить проблему. –

+0

Я копирую и вставляю ваше решение, чтобы дважды проверить, но я получаю: Предупреждение: для object_name не указано сообщение [amount] – Questifer