簡體   English   中英

用於更改日期的javascript自定義函數

[英]javascript custom function for changing dates

我在完成自定義功能時遇到了麻煩。

實際上,它不起作用,我真的不知道為什么。

這是函數:

<script type="text/javascript">
function lz(x){
    return x.toString().replace(/^(\d)$/,'0$1')
}
function dayplus(){
  var items = document.getElementsByClassName("datepicker hasDatepicker");
  for (var i = 0; i < items.length; i++){
    if (items[i].getAttribute('required')){
      var itemDtParts = items[i].value.split("-");
      var itemDt  = new Date(parseInt(itemDtParts[2],10), parseInt(itemDtParts[1],10)-1, parseInt(itemDtParts[0],10)+ +nb);
      items[i].value = lz(itemDt.getDate())+"-"+lz(itemDt.getMonth()+1)+"-"+itemDt.getFullYear();
    }
  }
}
​</script>

它對我說:

Uncaught SyntaxError: Unexpected token ILLEGAL addday.html:20

此外,它告訴我該函數未定義或不是這種情況。

下面是我使用該函數的形式:

<input type="text" class="datepicker hasDatepicker" required value="26-10-2012">

<input type="button" value="( - )" width="22" height="22" onClick="subday()" />
                  <input name="jours" type="text" value="" size="5" id="nb" />
                  <input type="button" value="( + )" width="22" height="22" onClick="dayplus()"  />​​​​​

我在這里開小提琴

我注意到的第一件事是您的標記看起來很奇怪。 不是嗎

<input type="text" class="datepicker hasDatepicker" required="true" value="26-10-2012">

代替

<input type="text" class="datepicker hasDatepicker" required value="26-10-2012">

第二件事是無效的語法,如enhzflep和Kimo_do所指出的那樣,未定義nb+ + nb 我在小提琴中將其替換為1

,10)+ +nb); 應該是,10)+ nb); 也許? ,10)+ (+nb) ); 如果nb可能為負。 也就是說-看起來像加號+。 仔細觀察,我還想知道您實際上是指nb.value還是它的縮寫:document.getElementById('nb')。value?

或在代碼中:

var itemDt  = new Date(parseInt(itemDtParts[2],10), parseInt(itemDtParts[1],10)-1, parseInt(itemDtParts[0],10) + document.getElementById('nb').value) );

修改后的代碼: jsfiddle 更改: nb丟失,您正在使用+ +添加nb

<input type="text" class="datepicker hasDatepicker" required=true value="26-10-2012">

<input type="button" value="( - )" width="22" height="22" onClick="subday()" />
                  <input name="jours" type="text" value="" size="5" id="nb" />
<input type="button" value="( + )" width="22" height="22" onClick="dayplus()"  />


<script type="text/javascript">
function lz(x){
     return x.toString().replace(/^(\d)$/,'0$1');
}
function dayplus(){
  var items = document.getElementsByClassName("datepicker hasDatepicker");
     nb = 1;
  for (var i = 0; i < items.length; i++){
    if (items[i].getAttribute('required')){
      var itemDtParts = items[i].value.split("-");

      var itemDt  = new Date(itemDtParts[2], parseInt(itemDtParts[1] ,10)-1, parseInt(itemDtParts[0],10) +nb);

      items[i].value = lz(itemDt.getDate())+"-"+lz(itemDt.getMonth()+1)+"-"+itemDt.getFullYear();

    }
  }
}
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM