Я использую happy.js для проверки формы. для этой формы мне нужно, чтобы пользователь представил один из пяти возможных паролей, если пользователь не отправил ни один из паролей правильно, форма должна завершиться неудачей.
не знаю, что я делаю неправильно здесь. оцените любую помощь. код ниже:
ФРОНТ:
<script type="text/javascript">
$(document).ready(function () {
$('#form10').isHappy({
fields: {
// reference the field you're talking about, probably by 'id'
// but you could certainly do $('[name=name]') as well.
'#Field226': {
required: true,
message: 'Please submit a valid Activation Code.',
test: happy.activationCode
}
}
});
});
</script>
СЧАСТЛИВЫЙ МЕТОД
var happy = {
activationCode: function (val) {
return (val == "dfgdfsg" || "uyioiuo" || "bvnm" || "zxvcx" || "z453v");
}
};
Это устранит вашу проблему...
return (val == "dfgdfsg" || val == "uyioiuo" || val == "bvnm" ||
val == "zxvcx" || val == "z453v");
Вам нужно выполнить сравнение val == "something"
для каждого из значений, которые вы не делали.
Но я настоятельно призываю вас пересмотреть это. Любой может просмотреть ваш источник страницы и увидеть все 5 паролей.
Ваша тестовая функция всегда будет оценивать значение true:
return (val == "dfgdfsg" || "uyioiuo" || "bvnm" || "zxvcx" || "z453v");
Потому что вы делаете ИЛИ со строкой, а строки правдивы. Вам нужно изменить его на это:
return (
val == "dfgdfsg" ||
val == "uyioiuo" ||
val == "bvnm" ||
val == "zxvcx" ||
val == "z453v");
Конечно, как отмечали другие, это совершенно небезопасно, поэтому я надеюсь, что вы просто проверите его и у вас будет более безопасный способ проверки паролей.
val == "dfgdfsg" || "uyioiuo" || "bvnm" || "zxvcx" || "z453v"
не делает то, что вы думаете, что делает. Повторитеval ==
или итерируйте массив.