Список переключателей при нажатии кнопки не работает в Mozilla и Chrome - PullRequest
0 голосов
/ 26 августа 2011

В моем веб-приложении есть список радиокнопок. У меня есть событие onclick для этого, оно отлично работает в IE, но не в некоторых других браузерах.Пример кода следующий:

<asp:RadioButtonList ID="rbgThreadStatus" runat="server" RepeatDirection="Horizontal"
        OnSelectedIndexChanged="rbgThreadStatus_SelectedIndexChanged" onclick="return rdblst_onClick();"
        AutoPostBack="True">
    <asp:ListItem Selected="True" Value="0">Alpha</asp:ListItem>
    <asp:ListItem Value="1">Bravo</asp:ListItem>
    <asp:ListItem Value="2">Charlie</asp:ListItem>
    <asp:ListItem Value="3">Delta Tickets</asp:ListItem>
    <asp:ListItem Value="4">Echo</asp:ListItem>
</asp:RadioButtonList>
<input type="hidden" value="0" id="hdnValue" runat="server" />

Ниже приведен Javascript

function rdblst_onClick()
{
    var hdnValue = document.getElementById('ctl00_ctl00_MainMaster_ContentPlaceHolder2_hdnValue');    
    var length = document.getElementById('ctl00_ctl00_MainMaster_ContentPlaceHolder2_rbgThreadStatus').cells.length;
    for (var i = 0; i < length; i++) 
    {
        if (document.getElementById('ctl00_ctl00_MainMaster_ContentPlaceHolder2_rbgThreadStatus_' + i.toString()).checked) 
        {
            if (hdnValue.value != document.getElementById('ctl00_ctl00_MainMaster_ContentPlaceHolder2_rbgThreadStatus_' + i.toString()).value) 
            {
                hdnValue.value = document.getElementById('ctl00_ctl00_MainMaster_ContentPlaceHolder2_rbgThreadStatus_' + i.toString()).value;                
                //Some code here
            }                      
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 26 августа 2011

Нашли решение

var length = document.getElementById('ctl00_ctl00_MainMaster_ContentPlaceHolder2_rbgThreadStatus').rows[0].cells.length;
0 голосов
/ 26 августа 2011

Вот изменение Javascript. Работает во всех браузерах.

function GetFormObject(objname) {
        var obj;
        for (i = 0; i < document.forms[0].length; i++) {
            obj = document.forms[0].elements[i];
            if (obj.id.indexOf(objname) != -1) {
                break;
            }
        }
        return obj;
    }

    function rdblst_onClick() {
        var hdnValue = GetFormObject('hdnValue'); 
        var length = GetFormObject('rbgThreadStatus').parentNode.parentNode.cells.length;

        for (var i = 0; i < length; i++) {
            if (GetFormObject('rbgThreadStatus_' + i.toString()).checked) {
                if (hdnValue.value != GetFormObject('rbgThreadStatus_' + i.toString()).value) {
                    hdnValue.value = GetFormObject('rbgThreadStatus_' + i.toString()).value;
                    //Some code here
                }
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...