JavaScript验证很少出现在我的工作中,我有点生疏。
我有一个页面确认了程序的覆盖。这里有三个相关元素;
cashCheckBox
),用户检查他/她是否希望提供输入现金cash
)的文本框,假设他们选中了复选框选中复选框后,如果用户点击其他任何位置,则文本框会显示默认值($ 0)。但是,当用户选中复选框,然后立即选择文本框(不提供输入)然后单击执行时,用户可能会开始一个cash
在不知不觉中被选为“$ 0”的过程。
是否有一个简单的添加我可以添加到if
条件以适应这种可能性?
function Validate(){
var f=document.frmGeneral;
if((f.cashCheckBox.checked) && (f.cash.value=="" || snip(f.cash.value,"$")<0))
{
alert("cash must be greater than 0");
f.cash.focus();
return false;
}
return true;
}
答案 0 :(得分:0)
试试这个:
function Validate(){
var f=document.frmGeneral;
if(f.cashCheckBox.checked && +f.cash.value.replace("$","") >= 0)
{
alert("cash must be greater than 0");
f.cash.focus();
return false;
}
return true;
}
主要变化是:+f.cash.value.replace("$","")
。
replace("$","")
删除所有$
个字符+
之前的f.cash.value
将强制将字符串转换为数字。因此"0"
变为0
,或"abc"
变为NaN
0
或 NaN
),那么它将无法通过检查。结果0
应该是有效值。已更改为>= 0
。