Отключить элемент списка переключателей с помощью Javascript - PullRequest
0 голосов
/ 23 февраля 2012

Я пытаюсь отключить переключатель из asp RadioButtonList, используя Javascript.Вот что у меня есть:

<asp:RadioButton ID="rbPlanner" runat="server" onclick="deselectRadioListItem('P');" />

, который вызывает этот клиентский javascript onClick ...

    function deselectRadioListItem(radioValue) {
        var clientID = ('<%= rblSummaryOptions.ClientID %>');
        for (i = 0; i < '<%= rblSummaryOptions.Items.Count %>'; i++) {
            if (document.getElementById(clientID + "_" + i.toString()).value == radioValue) {
                (clientID + "_" + i.toString()).disabled === true;
            }
            else
            {
                (clientID + "_" + i.toString()).disabled === false;
            }
        }
    }

Кажется, все работает правильно (запускается, повторяется, операторы if работают)управление радиокнопкой не отключается, даже если логика нажата.Что мне не хватает?Помощь очень ценится, спасибо!

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

Оператор === используется для сравнения.Вам нужно использовать =.

function deselectRadioListItem(radioValue) {
    var clientID = ('<%= rblSummaryOptions.ClientID %>');
    for (i = 0; i < '<%= rblSummaryOptions.Items.Count %>'; i++) {
        if (document.getElementById(clientID + "_" + i.toString()).value == radioValue) {
            document.getElementById(clientID + "_" + i.toString()).disabled = true;
        }
        else
        {
            document.getElementById(clientID + "_" + i.toString()).disabled = false;
        }
    }
}

или очистить чуть-чуть:

function deselectRadioListItem(radioValue) {
    var clientID = ('<%= rblSummaryOptions.ClientID %>');
    for (i = 0; i < '<%= rblSummaryOptions.Items.Count %>'; i++) {
        var objCurrentRdo = document.getElementById(clientID + "_" + i.toString());

        if (objCurrentRdo.value == radioValue)
            objCurrentRdo.disabled = true;
        else
            objCurrentRdo.disabled = false;
    }
}​

Дополнительная информация: Оформить Операторы сравнения по MDN.

0 голосов
/ 23 февраля 2012

это точно неправильно.

(clientID + "_" + i.toString()).disabled === true;

возможно, вы выиграли, набрав

document.getElementById(clientID + "_" + i.toString()).disabled = true;

или даже лучше

function deselectRadioListItem(radioValue) {
        var clientID = ('<%= rblSummaryOptions.ClientID %>');
        for (i = 0; i < <%= rblSummaryOptions.Items.Count %>; i++) {
                document.getElementById(clientID + "_" + i).disabled = 
              document.getElementById(clientID + "_" + i).value == radioValue;
        }
    }

у вас есть некоторые ошибки здесь...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...