2015-10-14 10 views
5

Mam formularz z sprawdzania poprawności javascript. istnieją 3 rozwijane (wybierz) pola z pytaniami i 3 pola wejściowe z odpowiedziami.Sprawdzanie poprawności javascript wybierz dropdown

Czy istnieje sposób sprawdzenia poprawności wybranych pól, aby nie zawierały tego samego pytania?

tutaj jest mój kod

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

a następnie kod html

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

+2

Dlaczego nie używasz prostego sprawdzania poprawności formularza jquery zamiast pisania tego długiego kodu .. –

+1

Mam to dawno temu i muszę zmienić wiele stron, jeśli zastąpię to :( – johnmathew21

+1

ok pozwól mi spróbować? wybierz pola –

Odpowiedz

1

należy porównać tekst wewnątrz każdej ddl, dodam następujący warunek:

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

działająca fiddel: here

+0

działa na skrzypce, ale nie na moim code.i zastąpił identyfikatory z poprawnym ale nadal nie działa. Ponownie dołączam cały kod. Może uda Ci się spojrzeć na – johnmathew21

+0

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

0

Po zmianie pierwszego spadku - wyłącz/usuń to pytanie z innych menu rozwijanych.

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

coś podobnego będzie działać.

Powiązane problemy