通过获取元素id来检查输入是否为空的javascript验证

时间:2015-05-20 12:50:57

标签: javascript

我是javascript的新手并尝试了一些代码..  在javascript中进行验证我尝试了下面的代码并且它可以正常工作

<input id="idd" type="number" min="400" max="500">
<button onclick="myFunction()">OK</button>

<script>
function myFunction() {
 var inobj = document.getElementById("idd"); 
      //to check if input is between 400 to 500 
 if (inobj.checkValidity() == false)
    {
        document.getElementById("demo").innerHTML = inobj.validationMessage;
    }

// to check if  input is empty
else if(inobj.value ==""||inobj.value==NULL)                                
    {
        document.getElementById("demo").innerHTML ="enter input";
    }
    else 
    {
        document.getElementById("demo").innerHTML = "Input OK";
     } 
    } 
    </script>

当我尝试使用以下代码检查输入是否为空时 它不起作用。为什么会这样?

// to check if  input is empty

var y = inobj.value;
else if( y == ""||y == NULL)                                
{
    document.getElementById("demo").innerHTML ="enter input";
}

我们不能将inobj.value分配给y,然后在else if条件中使用它。

5 个答案:

答案 0 :(得分:0)

可能你在你使用的范围之外定义你的y变量,所以当你尝试比较时,y被评估为未定义。

制作你的

Dim idx As Integer 
Dim start As Integer

Do
    idx = RichTextBox1.Find("is", start) '// First time through start at beginning
    If idx = -1 Then Exit Do
    RichTextBox1.SelStart = idx
    RichTextBox1.SelLength = 2
    RichTextBox1.SelColor = vbRed
    start = idx + 1 '// Set the start for .Find to the next character
Loop
RichTextBox1.SelLength = 0 ' Clear the selection

正好在

之下
var y = inojb.value

行,它应该工作

答案 1 :(得分:0)

不,你不能在else之前做到这一点。在else之前你唯一要做的就是前一个if 的右括号。

答案 2 :(得分:0)

您在哪里初始化var y?您是在if(){}子句中执行此操作,然后尝试在else if(){}子句中使用它吗?如果是这样,你必须在子句之前初始化它,否则当你去检查值时它永远不会被初始化。

<input id="idd" type="number" min="400" max="500">
<button onclick="myFunction()">OK</button>

<script>
function myFunction() {
 var inobj = document.getElementById("idd");    
 var y = inobj.value;
                        //to check if input is between 400 to 500



 if (inobj.checkValidity() == false)
    {
        document.getElementById("demo").innerHTML = inobj.validationMessage;
    }

// to check if  input is empty
else if(y == ""||y == NULL)                                
    {
    document.getElementById("demo").innerHTML ="enter input";
    }
    else 
    {
            document.getElementById("demo").innerHTML = "Input OK";
        } 
    } 
    </script>

答案 3 :(得分:0)

&#13;
&#13;
function myFunction() {
 var inobj = document.getElementById("idd"); 
 var y = inojb.value
 
 //to check if input is between 400 to 500 
 if (inobj.checkValidity() == false)
    {
        document.getElementById("demo").innerHTML = inobj.validationMessage;
    }

// to check if  input is empty
else if(y == "" | y == null)                                
    {
        document.getElementById("demo").innerHTML ="enter input";
    }
    else 
    {
        document.getElementById("demo").innerHTML = "Input OK";
     } 
    } 
&#13;
&#13;
&#13;

答案 4 :(得分:0)

我认为您的问题是因为您尝试在if块和else块之间声明变量。只需在if块之外声明您的变量。