开发者

HTML textfield whose values cannot be 0 using Javascript

I was trying to make a javascript function which will check if the user entered value inside a text field cannot be less than 9 digits & it cannot be all 0s.

This is what I made

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)'>

But this doesnt check th开发者_StackOverflow社区e condition where user enters more than 9 values and all 0's. It checks only for 1 condition that is with exact 9 zeros 000000000


So, if I understand that right you want the user to be able to enter a number with more than 9 digits, but they cannot be all zeros, right?

This can be done with a regexp:

var value; // Obtain it somehow

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

What this checks is whether the value is at lest 9 digits (it does not allow anything but digits) and that they are not all 0s.


This should check for both conditions:

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


Try something like this:

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

or if you wanted to check if it was a number as well:

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


Two options spring to mind. You can try parsing the value as a number and test for isNaN or != 0

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

Or you could use a regex

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

The first option is probably quicker.


try this:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜