嗨,各位,我有一个用户控件:
<input type="text" id="datepicker" runat="server" readonly="readonly" />
<img src="../images/remove.png" id="test" onclick="ClearFeild()" runat="server" />我的aspx页面如下:
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolderBody" runat="server">
<uc:Calendar ID="calSample" runat="server" ChangeMonth="false" ChangeYear="false"
DateFormat="dd-M-yy" TextBoxWidth="75px" Enabled="true" />
<uc:Calendar ID="Calendar1" runat="server" ChangeMonth="false" ChangeYear="false"
DateFormat="dd-M-yy" TextBoxWidth="75px" Enabled="true" />
</asp:Content>在用户控件上,我有一个javascript函数,它在img上被调用:
function ClearFeild()
{
debugger;
$("#<%=datepicker.ClientID %>").val() = "";
}但是…的价值
$("#<%=datepicker.ClientID %>");
总是:
$("#ContentPlaceHolderBody_Calendar1_datepicker");
这是第二个用户控件,即使我单击了第一个控件。
PLease协助我如何克服这一切。
CLearFeild函数在单击按钮时被调用,以清除datepicker。
致以亲切的问候。
发布于 2012-11-16 09:20:11
您需要将源对象传递给函数。
现场演示
onclick="ClearFeild(this)"
function ClearFeild(source) {
obj = $('#' + source.id)
prevInput = obj.prev('input[type=text]')
}发布于 2012-11-16 09:24:35
原因是您的js调用将到达最近可用的javascript方法。
因为它在用户控件中,所以可能会呈现两次。所以,你要达到第二种方法,它更接近。
呈现的输出如下所示
function ClearField(){$("#ContentPlaceHolderBody_calSample_datepicker")}
function ClearField(){$("#ContentPlaceHolderBody_Calendar1_datepicker")}并在这里您的输出。
尝试使用这个关键字传递图像引用,然后查找具有类的输入文本框
<input type="text" class="datepicker-box" id="datepicker" runat="server" readonly="readonly" />
<img src="../images/remove.png" id="test"
onclick="ClearFeild(this)" runat="server" />
function ClearFeild(img)
{
var dateTextBox= $(img).closest('input.datepicker-box');
}https://stackoverflow.com/questions/13413606
复制相似问题