我有一个onclick甚至设置为取值输入并在值为数字时发出警报。如果输入的值是空白的,我试图提醒它说“No Number”,但是,似乎即使我的输入为空,该函数返回一个语句,说“空”值确实是一个数字。
我已设置变量以立即解析输入的值,但这就是为什么我的代码总是返回“是一个数字”,因为它在收集变量时自动设置为1?
代码:
HTML:
<input type="text" id="numberTest" />
<button id="button">Click Me</button>
JS:
var button = document.getElementById("button");
button.onclick = function()
{
var numberTest = parseInt(document.getElementById("numberTest").value);
if(numberTest == NaN || "" || null)
{
alert("No Number");
}
else
{
alert("This is a number!");
}
};
答案 0 :(得分:4)
检查IF($DataSet.Tables["Table"] -isnot $null){
$DataSet.Tables["Table"] | Export-Csv $034CASHOUT -NoTypeInformation
echo "CL2 Exported"
}
else {
$headerText = ('"Client","Balance","Account"' + "`n")
New-Item $034CASHOUT | Add-Content -value $headerText
}
是否始终返回== NaN
。正确的方法是使用Number.isNaN()
:
false
您在var button = document.getElementById("button");
button.onclick = function() {
var numberTest = parseInt(document.getElementById("numberTest").value);
if (Number.isNaN(numberTest) || numberTest == "" || numberTest === null) {
alert("No Number");
}
else {
alert("This is a number!");
}
};
中的逻辑也存在一些问题 - 每个子句都是一个单独的表达式,因此每次都需要检查if
。
答案 1 :(得分:2)
尝试使用isNaN()方法:
isNaN(numberTest)
而不是
numberTest == NaN
根据NaN documentation,NaN永远不等于NaN,因此 NaN == NaN 或 NaN === NaN 将始终返回false ... < / p> 顺便说一下,你应该改变一下:
if(numberTest == NaN || "" || null)
到此:
if(isNaN(numberTest) || numberTest == "" || numberTest == null)
因此您始终将您的变量与某些值进行比较。
答案 2 :(得分:1)
这是了解数值是否为数字的另一种方法
function IsANumber(numberToValidate) {
return $.isNumeric(numberToValidate.replace(",", "").replace(".", ""));
}
$("[id^=YourIDButton]").click(function(){
if(IsANumber($(this).val())){
alert("This is a number!");
}else{
alert("No number");
}
}