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

时间:2018-01-05 00:44:52

标签: javascript asp.net ascx

我有一个.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。

1 个答案:

答案 0 :(得分:0)

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

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

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

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