3

我一直试图解决这个问题几个小时,但现在很幸运。希望你能帮助我。这是我的脚本:

function confirmPurge() {
        var d = confirm("You are about to purge all records, click Ok to proceed");
        if (d) {
            var c = document.getElementByName("yes");
            c.checked = true;
        }
        else {
            var c = document.getElementByName("no");
            c.checked = true;
        }

和 html 是这样的:

<asp:RadioButtonList ID="rblPurgeRecords" runat="server" 
                    RepeatDirection="Horizontal">
                    <asp:ListItem onclick="confirmPurge();" name="yes">Yes</asp:ListItem>
                    <asp:ListItem Selected="True" name="no">No</asp:ListItem>
                </asp:RadioButtonList>

当我尝试运行它时,我会弹出一个窗口,要求我单击“确定”或“取消”。如果我单击确定,我的代码会中断并出现此错误:“Microsoft JScript 运行时错误:'ScriptManager' 未定义”

想知道为什么这不起作用?或者是否有更好的方法以编程方式设置选择单选列表中的哪个按钮。

4

2 回答 2

3

我也面临同样的问题,但幸运的是找到了一个解决方案。相同的代码如下

function test() {
var rad = document.getElementById('<%=rblPurgeRecordse.ClientID %>');
var radio = rad.getElementsByTagName("input");
for (var i=0;i<radio.length;i++){
       if (radio[i].checked)
       {
           //your Code goes here....
           alert("SelectedValue = " + radio[i].value);
       }
    }
}
于 2015-02-25T11:36:22.007 回答
0

您想获取实际单选按钮的值而不是列表项。请记住,您在 .NET 控件中分配的单选按钮的 ID 不是呈现页面上的实际 ID,因此您需要使用 ClientID。

var radios = document.getElementsByName('<% rblPurgeRecords.ClientID %>');

for (var i = 0, length = radios.length; i < length; i++) {
    if (radios[i].checked) {
        // do whatever you want with the checked radio
        // the value of the radio button is : radios[i].value);

        break;
    }
}
于 2013-08-29T15:58:24.900 回答