2016-06-10 6 views
2

Ich habe einen Code, wo ich Radio-Buttons überprüfen muss, und ich weiß, wie man es alle Client-Seite macht. Hier ist der Auszeichnungs:Wie überprüft man, welches Optionsfeld ausgewählt ist, wenn sie alle Runat-Server sind?

<input type="radio" id="rbInternalUser" name="radioUserType" value="Internal" onclick="setUserType()"/> 
<label for="<%=rbInternalUser.ClientID%>">Internal User</label><br /> 
<input type="radio" id="rbExternalUser" name="radioUserType" value="External" onclick="setUserType()"/> 
<label for="<%=rbExternalUser.ClientID%>">External User</label><br /> 

Und das javascript:

<script type="text/javascript"> 
    function setUserType() { 
     var userType = $("input[name=radioUserType]:checked").val(); 
    } 
</script> 

Aber ich brauche diese Kontrollen auf runat=server, weil ich einige Codes hinter Sachen auch tun:

<input type="radio" id="rbInternalUser" name="radioUserType" value="Internal" onclick="setUserType()" runat="server" /> 
<label for="<%=rbInternalUser.ClientID%>">Internal User</label><br /> 
<input type="radio" id="rbExternalUser" name="radioUserType" value="External" onclick="setUserType()" runat="server" /> 
<label for="<%=rbExternalUser.ClientID%>">External User</label><br /> 

In In diesem Fall, wie finde ich heraus, welche Schaltfläche ausgewählt ist? Es scheint nicht, als ob die üblichen $("#<%=myControl.ClientID%>") hier funktionieren. Ich habe ein paar Dinge ausprobiert, und dies scheint der Nähe:

<script type="text/javascript"> 
    function setUserType() { 
     var radioUserType = $("#<%=rbInternalUser.ClientID%>").prop("name"); 
     var userType = $("input[name=" + radioUserType + "]:checked").val(); 
    } 
</script> 

radioUserType wird die Client-ID bekommen, aber dann die nächste Zeile nicht und sagte: „nicht erkannte Äußerung: input [name = ctl00 $ body $ EditUser1 $ radioUserType]: aktiviert ".

Was muss ich an Stelle von radioUserType setzen, damit dies funktioniert? Ist das möglich? Wie können Sie den Namen der Optionsfeldgruppe ermitteln und dann prüfen, welche Schaltfläche aus der Gruppe ausgewählt ist?

+1

Hey Kumpel, ich habe wirklich die meisten meiner Frontend Zeug vergessen, aber kommt dieser "unerkannte Ausdruck .." Fehler von JQuery? Wenn ja, fügen Sie vielleicht Zitate um name = "HIER" hinzu oder keine Ahnung, ob JQuery "checked" Pseudoklasse versteht :) – rostamn739

+1

@ rostamn739 Huh, das hat funktioniert. Es ist komisch, dass es die Anführungszeichen in der anderen Richtung nicht benötigt. –

+1

@ rostamn739 Wenn Sie das eine Antwort machen, werde ich es akzeptieren. –

Antwort

2

Stellen Sie bei der Auswahl von Elementen mit dem css-Attributselektor sicher, dass der übergebene Wert in Anführungszeichen steht. Beispiel:

$("input[name='John Doe']") 

Beachten Sie die einzelnen Anführungszeichen rund um den Namen "John Doe".

Daher müssen Sie

var userType = $("input[name=" + radioUserType + "]:checked").val(); 

zu

var userType = $("input[name='" + radioUserType + "']:checked").val(); 

die bestehende Anweisung ändern, die Ihr Problem lösen wird.

Verwandte Themen