Precisa retornar verdadeiro ou falso com base no IF Value no campo de texto é um número específico
-
26-09-2019 - |
Pergunta
Estou procurando retornar verdadeiro se o usuário inserir 4 no campo de entrada.
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" />
Adicionado isso ao arquivo JS da língua inglesa:
"validateAddition":{
"nname":"validateAddition",
"alertText":"* Your math is off, try again."}
Isso deve ficar bem, deixe -me saber o que você acha que está errado.
Solução
http://www.w3schools.com/jsref/jsref_parseint.asp
return (parseInt($('#validateAddition').val()) == 4)
EDIT: Moogoo está correto, eu estava enganado até minha explicação.
No entanto, é a ideia de usar +Val provavelmente não é a melhor. Embora o método acima funcione, pois você precisa de uma solução muito melhor seria a seguinte:
if(($('#validateAddition').val()-0) == 4)
A razão pela qual queremos -0 em vez de +0 é simplesmente porque, se for uma string e você deseja executar quaisquer operações adicionais, caso seja, você não terá mais a string original.
Outras dicas
Se você deseja permitir outros personagens e retornar verdadeiro apenas se o texto do campo de entrada contiver 4, você deve fazer assim: em vez disso:
if($("#validateAddition").val().indexOf('4') != -1) {
Faria com que o Sence compare o valor com uma string, pois o valor é uma string. Isso permite que você use rigorosos iguais, evitando conversões automáticas desnecessárias. Além disso, você pode simplificar a função.
function validateAddition() {
return $("#validateAddition").val() === "4";
}
Você pode colocar sua validação no arquivo de idiomas, parecendo algo assim
"validateAddition": {
"regex": /[0-3]|[5-9]/,//something that matches on all numbers but four
"alertText": "* Your math is off, try again."
},