JQuery - ASP.NET - Получить значение переключателей и подсчета - PullRequest
1 голос
/ 16 декабря 2011

Мне нужно пересоздать простую страницу JS, которая принимает значения переключателей для вопросов «да» и «нет» и отображает результаты того, что было выбрано. К сожалению, ASP.NET блокирует путь ... Кто-нибудь знает, как обойти проблемусеть может правильно получать значения в .NET, без серверной части?

<script type="text/javascript" language="javascript">
function scoreQuiz(form) {

    var count = 0;

    if ($('#<%=rbYesOne.ClientID%> radio:selected').val() == "1") {
        alert("YES");
    }

    if ($('#<%=rbNoOne.ClientID%> radio:selected').val() == "0") {
        alert("NO");
    } 

    else {
        alert("FU......");           
    }
</script>

<div class="row">
    <asp:RadioButton ID="rbYesOne" value="1" runat="server" GroupName="Question1" />
    <asp:RadioButton ID="rbNoOne" value="0" runat="server" GroupName="Question1" />
     <!-- and twelve more... -->
</div>


<script type="text/javascript" language="javascript">
    var rbYesOne = document.getElementById('<%=rbYesOne.ClientID%>');
    var rbNoOne = document.getElementById('<%=rbNoOne.ClientID%>');
    /* and twelve more...*/
</script>

Ответы [ 2 ]

2 голосов
/ 16 декабря 2011

Чтобы проверить, установлен ли переключатель, выберите его с помощью фильтра :checked, а затем посмотрите, были ли найдены какие-либо результаты со свойством длины:

if ($('#<%=rbYesOne.ClientID%>:checked').length === 0) {
    alert("NO");
} 

Или используйте функцию is:

if ($('#<%=rbYesOne.ClientID%>').is(":checked")) {
    alert("NO");
} 

Кроме того, работа с автоматически генерируемыми идентификаторами asp.net может быть проблемой.Чтобы упростить жизнь, вы можете присвоить переключателям уникальные имена классов , а затем просто сделать:

if ($('.rbOne:checked').length === 0) {
   alert("NO");
} 
0 голосов
/ 16 декабря 2011

Вы можете использовать:

$("#<%=rbYesOne.ClientID%>").change(function() {
    alert("YES");
});

$("#<%=rbNoOne.ClientID%>").change(function() {
    alert("NO");
});
...