我有一个.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。
答案 0 :(得分:0)
您的ascx ID不一定与HTML中的ID匹配。 ClientID属性将通过ClientID属性告诉您HTML标识。
我推荐这个(假设脚本在页面上)。无论表单上的对象名称是什么(例如,您的ascx实例可能被命名为DropDownList1,那么您将以这种方式引用它。
$("#resetButton").on("click", function () {
$('#<%= DropDownList1.ClientID %> option').prop('selected', function() {
return this.defaultSelected;
});
});
如果脚本不在页面上,则过程略有不同。