2012-03-30 10 views
1

Ich habe ein Formular mit 3 Auswahlelementen. Jeder hat standardmäßig die Option "na" und die Schaltfläche "Senden" ist deaktiviert. Ich brauche die Taste zu aktivieren, wenn mindestens eines dieser drei Selektoren andere Wahl hat, als „na“Schaltfläche aktivieren, wenn mindestens eine Option auswählen

Ich versuche, eine Funktion zu schreiben, so dass ich auch für Optionen auf Seite Last überprüfen:

JS

function myFunction() { 
    bt = $(".b"); 
    bt.attr("disabled", false).removeClass("disabledB"); 

    if ($(".mySelect").val(":not(na)").length > 0) { 
     bt.attr("disabled", true).addClass("disabledB"); 
     return false; 
    } 
} 

HTML

<table> 
<tr> 
    <td> 
    <select class="mySelect"> 
     <option value="na"></option> 
     <option value="1">value 1</option> 
     <option value="2">value 2</option> 
    </select> 

    <select class="mySelect"> 
     <option value="na"></option> 
     <option value="3">value 3</option> 
     <option value="4">value 4</option> 
    </select> 
    </td> 
</tr> 
<tr> 
    <td> 
    <input type="button" class="b" value="click me"> 
    </td> 
</tr> 
</table> 

nicht sicher, was ich bin falsch machen.

+0

'if ($ ("MYSELECT. ") Val (.": Nicht (na)".) Länge> 0) {'Stellst du den Wert hier nicht einfach ein? – PeeHaa

Antwort

1

RepWhoringPeeHaa ist richtig. Übergeben Sie eine Zeichenfolge in $().val() bedeutet, dass Sie versuchen, den Wert festzulegen. $().val() kann keinen Selektor nehmen. Ich denke, was Sie tun wollen

$('.mySelect option[value!=na]:selected').length == 0 
ist zu verwenden

anstelle von

$(".mySelect").val(":not(na)").length > 0 
+0

Dies ist falsch, da nach passenden Elementen gesucht wurde: '> 0' nicht' == 0'. Ah, gut. – iambriansreed

-1

Vielleicht if ($(".mySelect").val(":not(na)").length > 0) mit if ($(".mySelect").filter(function() { return $(this).val() !== "na"; }).length > 0)

2

ändern ersetzen :

if ($(".mySelect").val(":not(na)").length > 0) { 
    bt.attr("disabled", true).addClass("disabledB"); 
    return false; 
} 

An:

if ($(".mySelect option[value!='na']:selected").size() > 0) { 
    bt.attr("disabled", true).addClass("disabledB"); 
    return false; 
} 
Verwandte Themen