2017-07-05 71 views
0

我想要當文本字段空它會突出顯示它。以下是我的代碼,它一次只突出顯示一個字段。如果兩個字段都爲空,則會突出顯示一個字段在驗證javascript時突出顯示多個字段

<script> 
function ValidateForm(){ 

    var summary=document.getElementById("<%=summary.ClientID%>"); 
    if (summary.value == "" && txtTest.value == "") { 
     summary.style.backgroundColor = "Yellow"; 
     return false; 
    } 
    var txtTest = document.getElementById("<%=txtTest.ClientID%>"); 
    if (txtTest.value == "") { 

     txtTest.style.backgroundColor = "Yellow"; 
     return false; 
    } 

    return true; 

} 
</script> 

請幫我解決這個問題。我不想使用默認驗證器。

+0

問題是與你的'返回false;'聲明..我建議你刪除了這一行,相當保持標誌和更新這個標誌......你如果兩者檢查後,再檢查這個標誌並做一個'返回false;'或者跳過它。 –

回答

1

這是因爲您在檢查第二個輸入之前返回false。只有在檢查完所有輸入之後,您才需要返回truefalse。您也必須先檢查txtTest,然後再檢查其值。你可以做這樣的事情:

<script> 
function ValidateForm(){ 

    var validate = true; 

    var summary=document.getElementById("<%=summary.ClientID%>"); 
    if (summary.value == "") { 
     summary.style.backgroundColor = "Yellow"; 
     validate = false; 
    } 
    var txtTest = document.getElementById("<%=txtTest.ClientID%>"); 
    if (txtTest.value == "") { 

     txtTest.style.backgroundColor = "Yellow"; 
     validate = false; 
    } 

    return validate; 

} 
</script> 
+0

它沒有突出顯示字段 –

+0

@RamiFar做了修改,現在應該可以工作了。 – Dij

1

,而不是返回錯誤的病症使用的標誌爲假以指示錯誤。

默認情況下標誌爲真,如果有錯誤,應該設置爲false。

終於返回錯誤標誌。

<script> 
function ValidateForm(){ 
var flag=true; 
var summary=document.getElementById("<%=summary.ClientID%>"); 

if (summary.value == "" && txtTest.value == "") { 
    summary.style.backgroundColor = "Yellow"; 
    flag=false; 
} 
var txtTest = document.getElementById("<%=txtTest.ClientID%>"); 
if (txtTest.value == "") { 

    txtTest.style.backgroundColor = "Yellow"; 
    flag=false; 
} 

return flag; 

} 
</script> 
1

首先你應該得到txtTest VAR評估它, 然後,而不是每個if後返回前,做在底部確認

var summary=document.getElementById("<%=summary.ClientID%>"); 
var txtTest = document.getElementById("<%=txtTest.ClientID%>"); 

if (summary.value == "") { 
    summary.style.backgroundColor = "Yellow"; 
} 

if (txtTest.value == "") { 
    txtTest.style.backgroundColor = "Yellow"; 
} 
return !(summary.value == "" || txtTest.value == "") 
1

如果你的形式更復雜,也許到另一種方法分開確認和突出顯示。

// onKeyUp 
 
function k(e) { 
 
this.style.background = (this.value) ? "none" : "#0f0"; 
 
} 
 
window.onload = function() { 
 
    var t = ["in1","in2","in3"]; 
 
    var i, max = t.length; 
 
    var d; 
 
    for(i=0;i<max;i++) { 
 
    d = document.getElementById(t[i]); 
 
    d.style.background="#0f0"; 
 
    d.addEventListener("keyup",k,false); 
 
    } 
 
}
<input type="text" id="in1" name="in1" placeholder="Input 1"/><br /> 
 
<input type="text" id="in2" name="in2" placeholder="Input 2"/><br /> 
 
<input type="text" id="in3" name="in3" placeholder="Input 3"/><br />