使用Javascript,其值不能为0的HTML文本字段

时间:2011-07-21 10:57:45

标签: javascript html css focus onblur

我试图制作一个javascript函数,它会检查用户在文本字段中输入的值是否不能小于9位数&它不能全是0。

这就是我所做的

function CheckField(field)
{
if (field.value.length <9 || field.value=="000000000")
{
alert("fail");
field.focus();
return false;
}
else 
{
return true;
}
}

<input type ="text" id="number1" onBlur='return CheckField(this)'>

但这并没有检查用户输入超过9个值和全部0的条件。它仅检查具有精确9个零000000000

的1个条件

5 个答案:

答案 0 :(得分:2)

所以,如果我明白这一点,你希望用户能够输入一个超过9位的数字,但它们不能全为零,对吗?

这可以使用正则表达式完成:

var value; // Obtain it somehow

if (/^\d{9,}$/.test(value) && !/^0+$/.test(value)) {
    // ok
}

这检查的是该值是否至少为9位(除了数字之外不允许任何其他内容)并且它们不是全0。

答案 1 :(得分:1)

这应检查两个条件:

function CheckField(field){
  return !/0{9}/.test(field.value) && /\d{9}/.test(field.value);
}

答案 2 :(得分:0)

尝试这样的事情:

var valueEntered = field.value;
if (parseInt(valueEntered) == 0) ...

或者如果你想检查它是否也是一个数字:

if (!(parseInt(valueEntered) > 0))

答案 3 :(得分:0)

试试这个:

if (field.value.length <9 || field.value.replace("0","") == "")

答案 4 :(得分:0)

有两种选择可供选择。您可以尝试将值解析为数字并测试isNaN!= 0

  var parsed = parseInt(field.value, 10);
  if(field.value.length < 9 || !(isNaN(parsed) || parsed != 0)){
    alert("fail");
    ... rest of code
  }

或者您可以使用regex

if(field.value.length < 9 || !/[^0]/.test(field.value){
    alert("fail");
    ... rest of code
}

第一种选择可能更快。