2017-01-10 47 views
0

jquery datepickerを利用している入力要素を含むフォームを作成しています。ここに私のHTMLは、これらの入力のためにどのように見えるかの例です:要素IDを再割り当てするためのjavascript配列ループ

<td style="width:15%"><input type="text" name="datepicker" id="Tb3fromRow10"/></td> 
<td style="width:15%"><input type="text" name="datepicker" id="Tb3toRow10"/></td> 

私はYYYY/MM/DDように日付フォーマットを必要とする問題に実行しているんだけど、データベースはYYYYでフォーマットを受け入れます-mm-dd。その結果、私はそれをフォーム上にmm/dd/yyyyとして表示させることでハックしようとしていますが、イベントリストをonSubmitに設定すると、すべての日付形式がyyyy-mm-ddに変更され、 。これを行うには、getElementsByNameに基づいて配列を作成するループを作成しようとしています(これらの要素のすべてに「datepicker」という名前が付けられています)、すべてのフォーマットが変更され、すべてのIDが再割り当てされます。私は最初の2つのステップをやったと思いますが、IDの再割り当ての最後の段階で立ち往生しています:

var myArray = document.getElementsByName('datepicker[]'); 
    for(var i = 0; i < myArray.length; i++) { 
    var sep = myArray.split('/'); 
    var newDate = sep[2]+'-'+sep[0]+'-'+sep[1]; 
} 
**document.getElementsByName('datepicker[]').value = newDate;** 

私は最後の行が間違っている知っている、誰かが自分に日付要素のすべてを再割り当てで私を助けることができます適切なIDですか?

ありがとうございます!

+0

どのような日付ピッカーですか、あなたはフォームフィールドを検証しますか?サーバー側のクライアント? – lordkain

+0

あなたのDBの特質に対処するためにバックエンドを使用してみませんか? – Thomas

答えて

1

IDを再割り当てしていません。しかし、あなたはmyArrayを正しく使用していません。ここでは、あなたの例のHTMLの一部のようにname="datepicker[]"ないname="datepicker"を想定して変更するために必要なものです:

var myArray = document.getElementsByName('datepicker[]'); // or ("datepicker") depending on their name 
for(var i = 0; i < myArray.length; i++) { 
    var sep = myArray[i].split('/'); 
    var newDate = sep[2]+'-'+sep[0]+'-'+sep[1]; 
    myArray[i].value = newDate; 
} 

とにかく、なぜ保存する前に検証し、サーバ上で再フォーマットしていませんか?

+0

私のhtmlは実際にはname = "datepicker"なので、私の最初の行はvar myArray = document.getElementsByName( "strtotime($ str)日付ピッカー ");それで?また、私はServiceNowから取り組んでいます。システムの日付を再フォーマットするためにすべてを試しましたが、これがバグかどうかは分かりません。ありがとう! – Dave

+0

フィールドにある名前を使用する必要があります。それはdatepickerかdatepickerなのですか? – mplungjan

+0

hm ok、私は両方を試して何らかの理由でまだ動作しません... – Dave

関連する問題