Client side onTextChanged



我有两个文本框,一个有开始日期,另一个有结束日期。如果结束日期文本框为空,并且开始日期文本框设置为没有回发的日期,我希望将结束日期更改为开始日期。所以我写了这个js方法:

function AutoFillOut() {
if ($(".txtDateToEvent").val() == "")
$(".txtDateToEvent").Val() = $(".txtDateFromEvent").Val();
return false;
}

并在page_load方法中插入了以下语句:

txtDateFromEvent.Attributes.Add("onTextChanged", "javascript:AutoFillOut(this);");

我还尝试了onKeyUp和OnChange,而不是OnTextChanged。

已将自动填写更改为

function AutoFillOut() {
if ($("#<%=txtDateToEvent.ClientID%>").val() == "")
$("#<%=txtDateToEvent.ClientID%>").Val($("#<%=txtDateFromEvent.ClientID%>").Val())  ;
return false;
}

但仍然不起作用。

解决方案:JS:

function AutoFillOut() {
if ($('#<%=txtDateToEvent.ClientID%>').val() == "")
$('#<%=txtDateToEvent.ClientID%>').val($('#<%=txtDateFromEvent.ClientID%>').val())  ;
return false;
}

页面加载

txtDateFromEvent.Attributes.Add("onChange", "javascript:AutoFillOut()");

谢谢你的帮助!

您不需要在代码隐藏中向TextBox添加属性。你可以用jQUery添加一个监听器。

<asp:TextBox ID="txtDateFromEvent" runat="server"></asp:TextBox>
<asp:TextBox ID="txtDateToEvent" runat="server"></asp:TextBox>
<script type="text/javascript">
$(document).ready(function () {
$('#<%= txtDateToEvent.ClientID %>').blur(function () {
if ($('#<%= txtDateToEvent.ClientID %>').val() === '') {
$('#<%= txtDateToEvent.ClientID %>').val($('#<%= txtDateFromEvent.ClientID %>').val());
}
});
});
</script>

您也可以尝试

<asp:TextBox ID="txtDateFromEvent" runat="server"></asp:TextBox>
<asp:TextBox ID="txtDateToEvent" runat="server"></asp:TextBox>
<script type="text/javascript">
$(document).ready(function () {
$('body').on('blur','input[id*=txtDateToEvent]', '', function () {
if ($(this).val() == '') {
$(this).val($('input[id*=txtDateFromEvent]').val());
}
});
});
</script>

最新更新