необходимо вернуть True или False на основе, если значение в текстовом поле является определенным номером
-
26-09-2019 - |
Вопрос
Я ищу вернуть true, если пользователь ввел 4 в поле ввода.
function validateAddition() {
if($("#validateAddition").val() == 4) {
return true;
} else {
return false;
}
}
<input value=""
class="validate[required,onlyNumber,length[0,1]funcCall[validateAddition]] text-input"
type="text" id="validateAddition" name="validateAddition" />
Добавлено это в файл Anglish Language JS:
"validateAddition":{
"nname":"validateAddition",
"alertText":"* Your math is off, try again."}
Это должно быть хорошо, дайте мне знать, что вы думаете, неверно.
Решение
http://www.w3schools.com/jsref/jsref_parseint.asp.
return (parseInt($('#validateAddition').val()) == 4)
Редактировать: Moogoo правильный, я ошибился, насколько моему объяснению.
Однако идея использования + val, вероятно, не лучшая. Хотя метод выше будет работать, поскольку вам требуется гораздо лучшее решение, следующее:
if(($('#validateAddition').val()-0) == 4)
Причина, по которой мы хотим -0, в отличие от +0, - это просто потому, что если это строка, и вы хотите выполнить любые дополнительные операции, у вас есть, у вас больше нет исходной строки.
Другие советы
Если вы хотите разрешить другим персонажам и возвращать TRUE, только если текст поля ввода содержит 4, вам следует поделать это вместо этого:
if($("#validateAddition").val().indexOf('4') != -1) {
Это будет иметь смысл сравнивать значение строки, поскольку значение является строкой. Это позволяет использовать строгие равны, избегая ненужных автоматических преобразований. Также вы можете упростить функцию.
function validateAddition() {
return $("#validateAddition").val() === "4";
}
Вы можете поместить вашу проверку в языковой файле, выглядя что-то вроде этого
"validateAddition": {
"regex": /[0-3]|[5-9]/,//something that matches on all numbers but four
"alertText": "* Your math is off, try again."
},