0

我对自己完成的自定义功能有疑问。

事实上它不起作用,我真的不知道为什么。

这是功能:

<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();
    }
  }
}
​&lt;/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()"  />​​​​​
4

3 回答 3

1

我在这里做了一个小提琴

我注意到的第一件事是你的标记看起来很奇怪。难道不应该

<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了小提琴。

于 2012-10-01T11:50:00.237 回答
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) );
于 2012-10-01T11:59:11.190 回答
1

修改代码: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>
于 2012-10-01T12:06:18.963 回答