单击.aspx按钮时,.ascx下拉选项值不会更改

问题描述 投票:0回答:1

我有一个.aspx重置按钮,因此当用户单击它时,下拉菜单值将更改为所选值(Value1)。下拉菜单在.ascx(用户控件)中实现,重置按钮在.aspx中实现。我已经有一个javascript代码,.aspx代码和.ascx代码都在一个单独的文件中实现。

下面是我的.aspx重置按钮:

//user clicks reset button from the .aspx page
    <input id = "resetButton" type="button" value="Reset"/> 

下面是我的.ascx代码:

 //drop down menu option (Value1) changes after reset button is clicked
    <select id="DropDownList">
      <option value="Value1" selected="selected">Value1</option>
      <option value="Value2">Value2</option>
      <option value="Value3">Value3</option>
    </select>

以下是我的javascript代码:

   //changes the drop down menu Value1 option when user clicks the resetButton
        $("#resetButton").on("click", function () {
            $('#DropDownList option').prop('selected', function() {
                return this.defaultSelected;
            });
        });

在我的.aspx文件中,我有一个继承自javascript文件的asp占位符标记。如下所示。

<asp:Placeholder ID= "Placeholder1" runat="server">
        <script src="../Script/Script.js"></script>
</asp:Placholder>

我还将脚本标记放在.ascx文件中,它仍然无法正常工作,如下所示。

   <script type="text/javascript">
        $("#resetButton").on("click", function () {
        $('#DropDownList option').prop('selected', function() {
            return this.defaultSelected;
        });
    });
    </script>

有谁知道我可能做错了什么。我还在尝试更多地了解.aspx和.ascx。

javascript asp.net ascx
1个回答
0
投票

您的ascx ID不一定与HTML中的ID匹配。 ClientID属性将通过ClientID属性告诉您HTML标识。

我推荐这个(假设脚本在页面上)。无论表单上的对象名称是什么(例如,您的ascx实例可能被命名为DropDownList1,那么您将以这种方式引用它。

$("#resetButton").on("click", function () {
        $('#<%= DropDownList1.ClientID %> option').prop('selected', function() {
            return this.defaultSelected;
        });
    });

如果脚本不在页面上,则过程略有不同。

© www.soinside.com 2019 - 2024. All rights reserved.