使用JavaScript显示警告消息

时间:2014-07-10 19:35:34

标签: javascript jquery html asp.net

如果用户从单选按钮中选择“是”,我会尝试显示警告消息。我的问题是警告信息只显示是,但我想显示是和否,以便用户可以选择其中任何一个。当他们选择是时,我将删除一些记录,但所有这些都是在后面的代码中完成的。我在这做错了什么?

<div>

    <asp:RadioButtonList ID="RadioButtonList1" runat="server" AutoPostBack="True" RepeatDirection="Horizontal"
        OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged">
        <asp:ListItem Value="0">Yes</asp:ListItem>
        <asp:ListItem Value="1" Selected="True">No</asp:ListItem>

    </asp:RadioButtonList>

</div>

这是javascript

<script type="text/javascript">

    var selectlistId =   document.getElementsByName('<%= RadioButtonList1.ClientID %>');
    selectlist = document.getElementByid(selectlistId);

    selectlist.onchange = function () {
        if (selectlist.options[selectlist.selectedIndex].value == "YES") {
            if (confirm("Are you sure you want to delete?")) {
                __doPostBack(selectlistId, '');
            } else {
                // User selected NO, so change DropDownList back to 0.
                selectlist.selectedIndex = 0;
            }
        }
    };
</script>

3 个答案:

答案 0 :(得分:1)

回发使用.name而不是id,尝试更改为

__doPostBack(selectlist.name, '');

并查看是否有帮助

对于警告消息,您必须将事件处理程序附加到单选按钮列表中的输入元素。单选按钮列表本身是一个选项表。所以,在我的头脑中,这样的事情应该起作用

$('#<%=RadioButtonList1.ClientID%> input').click(function(){
    var $rb = $(this);
    if ($rb.val() == "YES"){
        ...
    }
});

编辑: 我添加了一个代码示例,演示了一个不使用jquery的工作确认框:

<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal"
                     OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged">
    <asp:listitem value="0">Yes</asp:listitem>
    <asp:listitem value="1" selected="True">No</asp:listitem>

</asp:RadioButtonList>


<script>

    (function () {

        //without jquery
        var rbl = document.getElementById('<%=RadioButtonList1.ClientID%>');

        var chks = rbl.getElementsByTagName('input');

        for (var x = 0; x < chks.length; x++) {
            var chk = chks[x];

            chk.onclick = function () {
                var that = this;
                if (that.value == "0") {

                    //selected yes
                    if (confirm("Are you sure?")) {

                        //confirmed yes
                        __doPostBack(rbl.name, '');
                    }
                    else {
                        //confirmed no
                    }
                }
                else {
                    //selected no
                }
            }
        }



    })();

</script>

答案 1 :(得分:0)

  <asp:RadioButtonList ID="RadioButtonList1" runat="server" AutoPostBack="True" RepeatDirection="Horizontal" ClientID="static"
    OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged">
       <asp:ListItem Value="0">Yes</asp:ListItem>
       <asp:ListItem Value="1" Selected="True">No</asp:ListItem>

  </asp:RadioButtonList>

<强> JS

$("#RadioButtonList1").change(function(){

   /// Do what you want

 });

解释:您可能希望将静态ID(ClientID =&#34;静态&#34;)添加到asp.net控件,然后将事件附加到该ID。

答案 2 :(得分:0)

确认对话框仅显示是或取消。如何使用jquery对话框?这将允许您更改对话框中的文本以获取不同的选项。 API文档为here