2015-10-14 66 views
5

我有一個JavaScript驗證的窗體。有3個帶問題的下拉(選擇)字段和3個帶答案的輸入字段。javascript validate select dropdown

有什麼辦法來驗證選擇字段,以便他們沒有相同的問題?

這裏是我的代碼

<script type="text/javascript"> 
var errmsg; 
function validate() 
{ 
var textA= document.getElementById("text1"); 
var textB= document.getElementById("text2"); 
var textC = document.getElementById("text3"); 
var textD = document.getElementById("text4"); 
var textE = document.getElementById("text5"); 
var textF = document.getElementById("text6"); 
var txt1 = document.getElementById("text1").value; 
var txt2 = document.getElementById("text2").value; 
var txt3 = document.getElementById("text3").value; 
var txt4 = document.getElementById("text4").value; 
var txt5 = document.getElementById("text5").value; 
var txt6 = document.getElementById("text6").value; 
var txt1_len = txt1.length; 
var txt2_len = txt2.length; 
var txt3_len = txt3.length; 
var txt4_len = txt4.length; 
var txt5_len = txt5.length; 
var txt6_len = txt6.length; 

if(txt1_len == '') 
{ 
    errmsg = "Please select a question"; 
    document.getElementById("ermsg").innerHTML = errmsg; 
    textA.focus(); 
    return false; 
} 

else if(txt2_len == 0 || txt2_len > 23 || txt2_len < 3) 
{ 
    errmsg = "Invalid Answer"; 
    document.getElementById("ermsg").innerHTML = errmsg; 
    textB.focus(); 
    return false; 
} 

else if(txt3_len == '') 
{ 
    errmsg = "Please select a question"; 
    document.getElementById("ermsg").innerHTML = errmsg; 
    textC.focus(); 
    return false; 
} 
else if(txt4_len == 0 || txt4_len > 23 || txt4_len < 3) 
{ 
    errmsg = "Invalid Answer"; 
    document.getElementById("ermsg").innerHTML = errmsg; 
    textD.focus(); 
    return false; 
} 
else if(txt5_len == '') 
{ 
    errmsg = "Please select a question"; 
    document.getElementById("ermsg").innerHTML = errmsg; 
    textE.focus(); 
    return false; 
} 

else if(txt6_len == 0 || txt6_len > 23 || txt6_len < 3) 
{ 
    errmsg = "Invalid Answer"; 
    document.getElementById("ermsg").innerHTML = errmsg; 
    textF.focus(); 
    return false; 
} 
else 
{ 
    return true; 

} 

return false; 
} 


</script> 

然後將HTML代碼

https://jsfiddle.net/johnmathew21/ty999fkv/

+2

爲什麼你不使用簡單的jQuery表單驗證,而不是寫這個冗長的代碼.. –

+1

我得到了很久很久以前,我必須改變很多頁面,如果我替換這個:( – johnmathew21

+1

好吧,讓我試試??你發佈你的所有選擇字段 –

回答

1

你應該文本比較每個DDL內, 我添加以下條件:

$('#text1 option:selected').text() === $('#text2 option:selected').text() 

working fiddel:here

+0

工作在你的小提琴,但不是在我的code.i取代了正確的ID但仍然無法工作,我再次附上整個代碼,也許你可以看看 – johnmathew21

+0

https://jsfiddle.net/johnmathew21/ty999fkv/ – johnmathew21

0

第一次下拉的更改 - 禁用/從其他下拉列表中刪除該特定問題。

$('#text1').change(function(){ 
    $('#text2 option[value='+$('#text1').val() +']').attr('disabled',true); 
    $('#text3 option[value='+$('#text1').val() +']').attr('disabled',true); 
}); 

這樣的事情會起作用。