用户在提交之前专注于文本框时的Javascript验证

时间:2012-03-20 21:32:06

标签: javascript validation

JavaScript验证很少出现在我的工作中,我有点生疏。

我有一个页面确认了程序的覆盖。这里有三个相关元素;

  1. 一个复选框(cashCheckBox),用户检查他/她是否希望提供输入现金
  2. 用户放置实际值(cash)的文本框,假设他们选中了复选框
  3. 执行按钮。
  4. 选中复选框后,如果用户点击其他任何位置,则文本框会显示默认值($ 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;                                        
    }
    

1 个答案:

答案 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("$","")

  1. replace("$","")删除所有$个字符
  2. +之前的f.cash.value将强制将字符串转换为数字。因此"0"变为0,或"abc"变为NaN
  3. 在清理输入后,只需检查以确保该值大于零。如果不是(即0 NaN),那么它将无法通过检查。
  4. 更新

    结果0应该是有效值。已更改为>= 0