2013-07-12 107 views
1

我有一個StartDate和一個ExpiryDate文本框。兩者都以2013年12月10日的形式獲得價值。JavaScript更改文本框值onchange

我希望能夠做的是,當您更改StartDate文本框(無論是否爲空或僅更新日期)時,ExpiryDate文本框需要在日期中添加1年。

實施例:

如果開始日期2013年10月12日=然後ExpiryDate將自動改變爲2014年10月12日。

如何用JS做到這一點?

function MyFunc() { 
      MyTextBox = document.getElementById("<%= TextBox1.ClientID %>"); 
      MyTextBox2 = document.getElementById("<%= TextBox2.ClientID %>"); 
      var date = new Date(MyTextBox.value); 
      var day = date.getDate(); 
      var month = date.getMonth() + 1; 
      var year = date.getFullYear() + 1; 
      MyTextBox2.value = day + "/" + month + "/" + year; 
     } 
+0

你卡在哪裏? –

+1

'var date = new Date(「input text」); date.setFullYear(date.getFullYear()+ 1);' – Ian

+0

更新了上面的代碼,似乎工作正常。剛剛有一個月的問題,減少一個,因爲它從0到11而不是1到12。 –

回答

3

試試這個,每當需要設置到期日期時,請調用setExpiryDate()函數。

function setExpiryDate() { 
    var txtStartDate = document.getElementById("ctrl1"); 
    var txtExpiryDate = document.getElementById("ctrl2"); 

    var dt = new Date(txtStartDate.value); 

    if (!isNaN(dt)) { 
     dt = dt.setYear(dt.getYear() + 1); 
     txtExpiryDate.value = padStr(temp.getDate()) + '/' + padStr(temp.getMonth() + 1) + '/' + temp.getFullYear().toString(); 
    } 
} 

function padStr(i) { 
    return (i < 10) ? "0" + i : "" + i; 
} 
0

如何:

function updateInput(value){ 
    document.getElementsById('Yourelement').Value = value; 
} 

除此之外,所有你需要的是一些日期解析/字符串操作來找到正確的一年。