![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_07.png?e8efa67)
http://www.kanaya440.com/contents/js/calendar/in …
このカレンダー付き日付入力プログラムを
メールフォームに組み込みたいのですが
どうしてもエラーが出てしまいます。
入れたいページはこれ↓です。
http://innerrich.com/postmail/arukeru_yoyaku_tes …
ここの「希望日」のところです。
どうしてもできないので
今のところカレンダーをポップアップ表示させるのみに至っています。
1.calendar.txtをダウンロードし(というかクリックするとテキストファイルが開くので別名で保存し、.jsの拡張子をつけます。
shift-jisで保存しました。
2.そのファイルをこのarukeru_yoyaku_tesco.htmと同じ階層に置きました。
3.<head>と</head>の間に<script src="calendar.js" language="JavaScript"></script> と書ました。
※今ははずしてあります。
4.希望日の横の欄の位置に
<input type="text" name="p1" id="p1" size="30" maxlength="10">
<input
name="Calendar"
type="button"
value=" "
style="background-image: url(calendar.gif);
background-color:#ffffff;
width:20px;
height:20px;
border:0;
cursor:pointer;"
onClick="wrtCalendar(event,this.form.p1,'yyyy/m/d');">
と書き込みました。
しかしカレンダーの画像をぽちとしても
カレンダーは出ず
左下に「エラーです」という表示がでます。
ファイル読み込みにせず
直接head内に書き込んでみてもだめです。
他のjavascriptは動くのに
(ポップアップも、その先のカレンダー表示もJavaScript)
どうしてもできなくて悔しいです。
あんまり詳しくないのでプログラムをいじるのも
おっかなびっくりです。
どなたかどうか教えてください。
よろしくお願いいたします。
windowsでdreamweaverを使いながら
タグも直接できるところはいじったりしています。
No.3ベストアンサー
- 回答日時:
プロなんですね=>
いいえ、昔のプログラミングの経験が少しある程度の
素人です。そんなに詳しくありません。基礎知識レベルです。
あなたのページで何故エラーが出るかはわかりません。残念ながら、ご指導するスキルもありません。
カレンダー表示でカレンダーが出て日付をクリックすると
左の空欄に年月日が入る・・・という風に。
=>無理です。なぜならcalendar.jsは、選んだ日付を一箇所のタグ
にしか返してくれないからです。しかも非同期で返ってくるので、
いつタグの値が返されたかハンドリングできません。そこで、カレンダーから
返された値を確認してOKボタンを押し、年、月、日の欄に分解して入れる
仕組みをJAVASCRIPTで追加すれば出来ます。
まる投げのお願い質問は管理人に怒られますが、今回は特別とゆうか
うまくヒントを書けないので、以下を参考にソースを研究してください。
(手順)
まず、calendar.txtをダウンロードしたら中身をいじらずそのまま
calendar.jsに名前を代えて自分のサイトにアップしてください。
オリジナルには<html>や<body>等のタグは無いはずです。
そしたら、<head></head>の中に
<script src="./jslib/calendar.js" type="text/javascript" charset="Shift_JIS"></script>
と書きます。
その後ろに、新たなJAVASCRIPTを↓のように追記します。
<script type="text/javascript">
//<![CDATA[
function DateSet(){
var setdate = document.getElementById('result').value;
document.getElementById('year').value = setdate.substring(0,4);
document.getElementById('month').value = Number(setdate.substring(5,7));
document.getElementById('day').value = Number(setdate.substring(8,10));
document.getElementById('result').value ="";
}
//]]>
</script>
フォームタグに以下のように名前を付けます(任意の名前でよい)
<form action="./postmail.cgi" method="post" name="sendform">
日付セット部分を以下のようにします。(日の後ろに追記します)
</select>
日
<input name="calender"
type="button" value="カレンダーから"
onClick="wrtCalendar(event,this.form.result,'yyyy/mm/dd');"
style="width:80px;height:20px;cursor:pointer;" >
<input type="text" name="result" id="result" value="" size="12">
<input type="button" value="OK" onClick="DateSet()" size="2">
※年、月、日のoption valueを全部"XX"(文字)からXX(数値)にしちゃいました。
<option value="1">1</option> ==> <option value=1>1</option>
これは、01~09までの先行0を取り除く処理を作るのが面倒だったので、さぼった訳です。(正規表現で除けるのですが...)
ところで、送信先のCGIもあなたが作っているのですか?
だとしたら、YYYY/MM/DDの形の日付を受け取る様に改造するだけ
ですみますよ。
No.2
- 回答日時:
<1.calendar.txtをダウンロードし(というかクリックするとテキストファイルが開くので別名で保存し、.jsの拡張子をつけます。
shift-jisで保存しました。>
ここの手順がまちがってませんか?あなたのサイトの
http://innerrich.com/postmail/arukeru_yoyaku_tes …
をFireBugで見ると、calendar.jsの中身に余分な物(hrmlとかbodyとか)
がついているようですが、これは根本的な原因では無いです。
あなたのサイトのソースをコピペして調べてみたところ、
calendar.jsを使うときは、formとbuttonタグにname属性が無いと
動かないみたいです。適当な名前aaa,bbbをつけたら出来ました。
FireFox3.0とIE6.0で動作確認しました。
<変更箇所>
=======
<form action="./postmail.cgi" method="post" name="aaa">
=======
<option value="30">31</option>
</select>
日
<input name="bbb"
type="button" value="カレンダー表示"
onClick="wrtCalendar(event,this.form._日,'d')"
style="
width:100px;
height:20px;
cursor:pointer;" >
=======
このやり方だと、カレンダーから日の欄のセットのみです。
年月日をカレンダーから別々の欄にセットするためには、
さらに工夫する必要がありますね。
この回答への補足
すごい・・・
すごい人ですね。あっさりできてしまうのですね。
(何のお仕事なんでしょう。きっとプロなんですね)
やってみるけどできません・・・またエラーが出ちゃいます。
あほな子ですみません。
calendar.jsの中身のhrmlとかbodyタグは消しても大丈夫なんですか?
こわくて触れませんでした。
一番最初のフォームにも名前をつけるんですね。
こういう形にしたいのです。
http://innerrich.com/postmail/arukeru_yoyaku_tes …
カレンダー表示でカレンダーが出て
日付をクリックすると
左の空欄に年月日が入る・・・という風に。
何度も甘えてばっかりですみません!
どうか教えてください。
No.1
- 回答日時:
日の横の欄
<input type="button" name="Calendar" value="カレンダー表示"
onClick="wrtCalendar(event,this.form._日,'d')"
style="background-image: url(calendar.gif);
background-color:#ffffff;
width:20px;
height:20px;
border:0;
cursor:pointer;"
>
この回答への補足
ありがとうございます。
教えていただいたとおりやってみたんですがやっぱり
「ページでエラーが表示されました」と
出てしまいます・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
hiddenのvalueの値を変えたい
-
value内に変数を入れたい
-
VB.NET DateTimeの型について
-
VBAをJavaScriptに変換したいです
-
ラジオボタンの選択で解答・点...
-
フォームで入力した値を別のフ...
-
【Javascript】formで取得した...
-
設置したけどエラーがでます。
-
JavaScriptによる自動計算フォ...
-
値を初期化したい。
-
javascriptでhiddenに二次元配...
-
ラジオボタンと連動して文字列...
-
複数のsubmitボタンで押された...
-
return trueとreturn falseの用...
-
<JavaScript>tableタグを入力不...
-
onchangeイベントを強制的に発...
-
submitした値を返したい
-
【jQuery】input nameの文字列...
-
javaScriptの変数をJavaの変数...
-
ハイパーリンクを別ウインドウ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
value内に変数を入れたい
-
hiddenのvalueの値を変えたい
-
javascriptでhiddenに二次元配...
-
複数のsubmitボタンで押された...
-
テキストボックスに入力された...
-
switchを使って四則演算のプロ...
-
VB.NET DateTimeの型について
-
クイズ作成:15個の問題から5個...
-
C言語クイックソートの比較総回...
-
セレクトボックスの初期選択状...
-
ラジオボタンの選択で解答・点...
-
子から親へチェックボックスの...
-
ラジオボタンと連動して文字列...
-
setIntervalの間隔を途中で変更...
-
JAVASCRIPTで、ボタンを押した...
-
sessionStorageを調べています。
-
クリックの度に加算していくには?
-
マクロ オブジェクト変数With...
-
3桁区切りのカンマをつけたい...
-
selectboxのoptionタグのvalue...
おすすめ情報