我有两个文本框,一个有开始日期,另一个有结束日期。如果结束日期文本框为空,并且开始日期文本框设置为没有回发的日期,我希望将结束日期更改为开始日期。所以我写了这个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>