ASP.net使用javascript在内容页上获取RadioButtonList值

ASP.net getting RadioButtonList value on content page with javascript

本文关键字:获取 RadioButtonList net 使用 javascript ASP      更新时间:2023-09-26

我有一个问题,我的JavaScript代码已经移动到ASP的内容页。

它在一个独立的页面上运行得很好。

<script type="text/javascript">
        function validateQ12(oSrc, args) {
            var rbtnList = document.getElementsByName('rbtn12');
            var noClicked = false;
            for (var i = 0; i < rbtnList.length; i++) {
                if (rbtnList[i].checked) {
                    noClicked = rbtnList[i].value == "No";
                    break;
                }
            }
            if (noClicked) {
                args.IsValid = true;                   
            }
            else
                args.IsValid = args.Value.trim().length > 0;                   
        }
    </script> 

我把两个页面的html都看了一遍,其中有

<input id="rbtn12_1" type="radio" name="rbtn12" value="No" checked="checked" onclick="Q12iNo();">

内容页中的新标签为

<input id="MainContent_rbtn12_1" type="radio" name="ctl00$MainContent$rbtn12" value="No" checked="checked" onclick="Q12iNo();">

很明显,一定是名字的改变引起了这个问题。我如何在我的javascript代码中引用这个新名称?

使用以下命令获取呈现的元素名称:

<%= rbtn12.UniqueID %>

然而,在您的情况下,这可能仍然不起作用,因为看起来您需要遍历每个单选按钮项。

请看下面的文章:

找出单选按钮是否与JQuery检查?

显示如何确定单选按钮集合是否具有选定值。

你可以添加一个className到你的控件和使用getElementByClassName吗?

<input id="MainContent_rbtn12_1" type="radio" name="ctl00$MainContent$rbtn12" value="No" checked="checked" onclick="Q12iNo();" CssClass="Radio">
<script type="text/javascript">
        function validateQ12(oSrc, args) {
            var rbtnList = document.getElementsByClassName('Radio');
            var noClicked = false;
            for (var i = 0; i < rbtnList.length; i++) {
                if (rbtnList[i].checked) {
                    noClicked = rbtnList[i].value == "No";
                    break;
                }
            }
            if (noClicked) {
                args.IsValid = true;                   
            }
            else
                args.IsValid = args.Value.trim().length > 0;                   
        }
    </script>