出于某种原因,我不能使用runat="server"
作为输入标记的属性,以便jQuery显示图像按钮和工作。没有runat="server"
会出错吗?它工作正常。我希望格式为“yyyy / mm / dd”,我也需要它用于服务器,因为这是我检查手动输入的日期是否是有效日期并且它与接受的格式匹配的地方。我真的想使用asp:button
,但因为我不能使用runat="server"
属性,所以我不知道该怎么做,因为这是asp控件所必需的
<script language="javascript" type="text/javascript">
$(document).ready(function(){
$("#datepicker").datepicker({ showOn: "both",
buttonImage: "/Content/img/calendar.gif",
buttonImageOnly: true });
});
</script>
答案 0 :(得分:8)
当您使用runat ='server'时,它会将您的ID从“#datepicker”更改为“form1_ctl01_ctl05_datepicker”或
编辑: 对于解决方案,您可以根据css类而不是ID
来获取它<input id='datepicker' runat='server' class='datepicker' />
$(document).ready(function(){
$(".datepicker").datepicker({ showOn: "both",
buttonImage: "/Content/img/calendar.gif",
buttonImageOnly: true });
});
答案 1 :(得分:2)
对于使用runat =“server”的控件,aspnet会为渲染的html控件生成自己的,相当丑陋的ID。
如果您的脚本在实际页面上,则可以替换为
带$(“#&lt;%= datepicker.ClientID%&gt;”)的$(“#datepicker”),
它将输出aspnet生成的错位id,或者像Jimmy建议的那样,用css类来定位它。
答案 2 :(得分:0)
后人:
使用runat='server'
标记时,请将clientidmode='static'
添加到元素标记中,以防止生成的ID损坏。在复杂或嵌套的表单上,这可能会混淆控件ID的唯一性,这就是为什么它们默认带有元素父元素的id前缀。
P.S。 css类可能是处理datepickers的最佳方式(恕我直言),因此接受的答案看起来很好。