为什么没有ASP.net RadioButtonList onchange客户端事件触发?

时间:2014-04-25 11:54:40

标签: javascript jquery html asp.net

我有asp.net项目,我有一个主页面,我包括这一行,参考JS文件

<script type="text/javascript" src="Scripts/HideDIV.js"></script>

在JS文件中我有这个功能:

function hideDiv() {
    document.getElementById('div1').style.display = 'none';
    document.getElementById('div2').style.display = 'none';

    if (document.getElementById('RadioButtonTipoUser_0') != null) {
        if (document.getElementById('RadioButtonTipoUser_0').checked) {
            document.getElementById('div1').style.display = 'block';
        }
    }

    if (document.getElementById('RadioButtonTipoUser_1') != null) {
        if (document.getElementById('RadioButtonTipoUser_1').checked) {

            document.getElementById('div2').style.display = 'block';

        }
    }
}

基本上我需要在这个RadioButtonList上,在Js&#34; hideDiv()&#34;上调用一个函数,当选择一个Button时,一个div隐藏传递给可见。

此代码在内容中。

<div>
        <asp:RadioButtonList ID="RadioButtonTipoUser" runat="server" RepeatDirection="Horizontal" onchange="hideDiv()">

            <asp:ListItem Selected="true" Value="1">Dome</asp:ListItem>
            <asp:ListItem Value="2">Emp</asp:ListItem>
            <asp:ListItem Value="3">Vet</asp:ListItem>
        </asp:RadioButtonList>


    </div>

    <div id="div1" style="display:none">
        <a>Charls</a>
    </div>
    <div id="div2" style="display:none"><a>Maris</a></div>
</div>

我进行了调试,错误消息是

  

ReferenceError:未定义hideDiv

我如何制作onchange =&#34; hideDiv()&#34;调用HideDiv()函数?

贝斯茨

2 个答案:

答案 0 :(得分:3)

使用jquery来完成任务

HTML

<div>
        <asp:RadioButtonList ID="RadioButtonTipoUser" runat="server" RepeatDirection="Horizontal">

            <asp:ListItem Selected="true" Value="1">Dome</asp:ListItem>
            <asp:ListItem Value="2">Emp</asp:ListItem>
            <asp:ListItem Value="3">Vet</asp:ListItem>
        </asp:RadioButtonList>


    </div>

    <div id="div1" >
        <a>Charls</a>
    </div>
    <div id="div2" ><a>Maris</a></div>

<强> JQUERY

 $(document).ready(function () {

        $('#div1').hide();
        $('#div2').hide();
        $('#RadioButtonTipoUser_1').on('change', function () {

            if ($(this).is(':checked')) {
                $('#div1').show();
                $('#div2').hide();
            }
        });
        $('#RadioButtonTipoUser_2').on('change', function () {
            alert("ok1");
            if ($(this).is(':checked')) {
                $('#div1').hide();
                $('#div2').show();
            }
        });
    });

答案 1 :(得分:0)

我们的网站是一个内联网,我不得不在Internet Explorer中关闭在兼容性视图中显示Intranet站点,以便onchange在RadioButtonList中工作。看起来ASP.NET实际上将一个javascript事件添加到RadioButtonList呈现的包含表中,而兼容性视图中的IE会阻止它工作。

enter image description here