簡體   English   中英

javascript驗證,通過獲取元素ID來檢查輸入是否為空

[英]javascript validation to check if input is empty,by getting the element id

我是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條件中使用它。

可能是您在使用變量的范圍之外定義了y變量,因此當您嘗試對其進行比較時,y會被評估為未定義。

做你的

var y = inojb.value

就在

var inobj = document.getElementById("idd");

線,它應該工作

不,如果不能的話,您不能馬上就做。 您在else if之前唯一需要做的就是前一個if的右括號

您要在哪里初始化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>

 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"; } } 

我認為您的問題是因為您嘗試在if塊和else塊之間聲明一個變量。 只需在if塊外聲明變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM