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

変更されたコード: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 に答える
1

ここでフィドルを作りました

私が最初に気付いたのは、マークアップが奇妙に見えることです。あるべきではない

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

それ以外の

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

2つ目は、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 に答える