asp.net通过JS根据其他文本框的值更新文本框

本文关键字:文本 更新 其他 net 通过 JS asp | 更新日期: 2023-09-27 18:13:04

我的asp.net页面上有两个文本框。一张是今天的,一张是一年后的到期日期。

所以如果第一个文本框包含23/04/2013

我希望第二个文本框自动填充23/04/2014

如何将过期日期更新为恰好一年后的日期(不回发)我怀疑一些JS是需要的对吗?

asp.net通过JS根据其他文本框的值更新文本框

这个答案使用jQuery读取日期、解析各部分并在年份上加1。但是,它不会检查所输入日期的有效性,因此在第一个文本框中输入字母将产生"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));
        }
    });
});

工作示例:http://jsfiddle.net/6vs5y/

function update(sourceTBId, targetTBId){
    document.getElementById(targetTBId).value = document.getElementById(sourceTBId);
}

<input type='button' onclick="update('<%=textbox1.ClientID%>', '<%=textbox2.ClientID%>')"/>

其中textbox1为源,2为目标。

哦,对不起,你说的是自动的…

在后面的代码中这样做

textbox1.Attributes。添加("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中。