我的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