我的asp.net页面上有两个文本框。 一个是今天的日期,一个是从现在起一年后的失效日期。asp.net通过基于其他文本框值的更新文本框
因此,如果第一个文本框包含23/04/2013
我想第二个文本框与23/04/2014
自动填充如何更新到期日的日期整整一个一年后(无回传) 我怀疑需要一些JS对不对?
我的asp.net页面上有两个文本框。 一个是今天的日期,一个是从现在起一年后的失效日期。asp.net通过基于其他文本框值的更新文本框
因此,如果第一个文本框包含23/04/2013
我想第二个文本框与23/04/2014
自动填充如何更新到期日的日期整整一个一年后(无回传) 我怀疑需要一些JS对不对?
此答案使用jQuery读取日期,解析零件并在年份中添加一个零件。但是,它不会检查输入日期的有效性,因此在第一个文本框中输入字母会生成日期“NaN/NaN/NaN”。你可以将它与jQuery UI的DatePicker结合起来,以确保输入是有效的日期。在这种情况下,您将使用change
事件而不是keyup
。
HTML:
<input id="today" type="text" />
<input id="future" type="text" />
的Javascript:
$(document).ready(function() {
$('#today').keyup(function() {
var today = new Date($(this).val());
if (today != NaN) {
var dd = today.getDate();
var mm = today.getMonth();
var y = today.getFullYear();
$('#future').val(dd + '/' + mm + '/' + (parseInt(y)+1));
}
});
});
function update(sourceTBId, targetTBId){
document.getElementById(targetTBId).value = document.getElementById(sourceTBId);
}
<input type='button' onclick="update('<%=textbox1.ClientID%>', '<%=textbox2.ClientID%>')"/>
其中textbox1是源,2是目标。
噢,对不起,你不由自主地说...
在后面的代码做到这一点
textbox1.Attributes.Add( “的onkeyup”, “更新( ' ”+ textbox1.ClientID +“',“” + textbox2.ClientID + “')”);
至于日期,如果您确定这将是DD/MM/YYYY那么这应该这样做(有可能是更优雅/更好的方式 - 如果格式是错误的,这将失败 - 也是这个全都是空气代码,请检查它)
function update(sourceTBId, targetTBId){
var dateString = document.getElementById(sourceTBId);
var dateParts = dateString.split("/");
var dd = dateParts[0];
var mm = dateParts[1];
var yy = 1 + parseInt(dateParts[2]);
document.getElementById(targetTBId).value = dd+'/'+mm+'/'+yy;
}
会好得多使用任何日期解析和格式的方法,但我没有足够的熟悉,迅速地说,这是否即使在JS存在。
谢谢,但我知道按钮绝招。我需要它做同样的事情,但没有任何按钮/点击。所以当用户离开文本框1时,textbox2应该自动更新。我想JS也计算新的日期。那可能吗? – 2013-05-09 14:59:56
当然,只是改变我在onblur – 2013-05-09 15:01:00
修改后的答案好吧,这是有道理的,但如何在JS中处理Date(),以便我可以从textbox1添加1年的日期,然后显示在textbox2? – 2013-05-09 15:15:10