我正在计算机表格上进行一些验证我正在建设,我想要一个节目'请填写此字段'如果用户没有在输入中输入数字,则显示消息。
默认情况下,该字段有一个' 0'在里面。
所以我想检查字段是否为空或字符串是否为' 0'。
还应该提到运行的脚本可以防止用户输入非数字字符。
这是if / else语句中的一系列检查的一部分。对于这种情况,我已经有一个条件(拿起用户做出的先前选择)。
所以我有类似的东西:
if ( calcChoice == 1 && $( "#input-loan" ).val() == "0" ) {
console.log("User input missing");
$( "#input_loan" ).addClass( "error" );
} else if ( calcChoice == 1 && $( "#input-pay" ).val() == "" ) {
console.log("User input missing");
$( "#input_loan" ).addClass( "error" );
} else if ( calcChoice == 2 && $( "#input-loan" ).val() == "0" ) {
console.log("User input missing");
$( "#input_loan" ).addClass( "error" );
} else if ( calcChoice == 2 && $( "#input-pay" ).val() == "" ) {
console.log("User input missing");
$( "#input_loan" ).addClass( "error" );
我想简化这一点。我真正喜欢的是:
if ( calcChoice == 1 && $( "#input-loan" ).val() == "" || "0"; ) {
//do something;
}
有什么想法吗?
我已经查看了以下相关问题但未能通过答案解决问题:
How do you check for an empty string in JavaScript?
JavaScript: Simple way to check if variable is equal to two or more values?
答案 0 :(得分:2)
var goodValues = ["","0"];
if( goodValues.indexOf( $( "#input-loan" ).val() ) !== -1 ) {
//good
}
答案 1 :(得分:1)
你可以写
if($( "#input-loan" ).val() + 0 == 0)
{
// do smth.
}
不确定这种方法是否合适但是对我有用
答案 2 :(得分:0)
if(calcChoice == 1&&($(“#input-loan”)。val()==“”|| $(“#input-loan”)。val()==“0 “)){ //做一点事; }
尝试这似乎是错误的。同样,您也可以使用 $ .isEmptyObject(object)确保值是否为空。
答案 3 :(得分:0)
解决方案可以基于以下内容。
var loanInput = $( "#input-loan" );
var payInput = $( "#input-pay" );
var loanValue = +loanInput.val(); //+ converts string to number
var payValue = +payInput.val();
if (!loanValue) {
loanInput.addClass( "error" );
}
if (!payValue) {
payInput.addClass( "error" );
}
顺便说一句,请注意,而不是默认值为" 0"在输入中,您可以将输入的placeholder
属性设置为0。
<input type="text" placeholder="0" />
这样你就不需要检查输入是否为&#34; 0&#34;,你实际上可以治疗&#34; 0&#34;如果需要,作为有效输入。
答案 4 :(得分:0)
感谢您回答所有人。这里真的很好的解决方案。现在似乎很明显有一个'0'占位符,只测试为空。此外,akmed0zmey的解决方案非常巧妙。
我忘了提及没有必要修剪,因为我有一个脚本运行,阻止用户输入非数字字符,包括空格。我已将原始问题更新为包含此内容。
我选择了RicardoC的解决方案,因为它最贴切地回答了我提出的具体问题,这是保留未来的好方法 - 我可以有一系列字符串来测试。
谢谢!
答案 5 :(得分:0)
为了记录,这个正则表达式测试也有效。它正在测试一个空字符串或字符串&#39; 0&#39;:
if ( calcChoice == 1 && /^(|0)$/.test( $( "#input_loan" ).val() ) ) {
//do something
} else if ( calcChoice == 2 && /^(|0)$/.test( $( "#input_pay" ).val() ) ) {
// do something
}
之前我曾试过这个,但我的代码中的其他地方肯定存在问题。现在它有效。 (在对问题的评论中向Nils欢呼,指出这有效)。