• ベストアンサー

カレンダーをテキストエリアに追記で入力したい

ポップアップカレンダーのテキストエリアへの入力方法で悩んでいます。 ts_picker.jsを使用してテキストエリアに日付を入力したいのですが追記ができず 上書きをしてしまいます。 改行して追記する方法を試してみたのですが追記ができません。 どなたか追記する方法をご存知ではないでしょうか? ts_picker.jsライブラリのあったサイト http://www.javascriptkit.com/script/script2/timestamp.shtml

質問者が選んだベストアンサー

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

テキストエリアへの入力ですよね。サンプルだとテキストボックス<input type="text" ~だから当然、改行なんて出来ませんよね! 試してないけど <form name="tstest"> <textarea name="timestamp" cols="10" rows="5"></textarea> <a href="javascript:show_calendar('document.tstest.timestamp', document.tstest.timestamp.value);"><img src="cal.gif" width="16" height="16" border="0" alt="Click Here to Pick up the timestamp"></a> </form> とマークアップしたとして、「ts_picker.js」を改造ですね。 78行目あたりを(注意:全角スペースでインデントしてます。)    if (dt_current_day.getMonth() == dt_datetime.getMonth())     // print days of current month     str_buffer += "<a href=\"javascript:window.opener."+str_target+     ".value +='"+dt2dtstr(dt_current_day)+"'+document.cal.time.value; window.close();\">"+     "<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">";    else     // print days of other months     str_buffer += "<a href=\"javascript:window.opener."+str_target+     ".value +='"+dt2dtstr(dt_current_day)+"'+document.cal.time.value; window.close();\">"+     "<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">"; に直してみる。 それから18行目 var dt_datetime = (str_datetime == null || str_datetime =="" ? new Date() : str2dt(str_datetime)); も直したほうがいいかも。このままだとテキストエリアに既に値が入っていた時に 正しい値を取れないかもしれない。最後の入力日付を取るように改造するか、 str2dt(str_datetime))をカットしてしまうとか...

okinawa157
質問者

お礼

できました!!!! 昨日ずっと+を最後のほうの部分に付け足したりしていてまったく改善できず困っていました。 見当違いもいいところでした。もっと勉強しないといけませんね。 もう一点yyr446様のご指摘いただきました18行目ですが確かにテキストエリアに既に値が入っていた場合にalertが出ていました。 var dt_datetime = new Date();にしたところalertもでなくなりました。 まだこのjs下の方のプログラムわからないところがあるのでそれについては引き続き調べていきたいと思います。 本当に本当にありがとうございました。

関連するQ&A