さて、いくつかのチュートリアルと HTML5 に関する本を読んだことがあります。この本では、フォーム コントロールとその変更点について多くのことが書かれています。そこで、このサンプル コードを使用してコードをテストしてみました。私がやりたいことは、フォーム データ (具体的には、誰かがカウントダウンしたいイベントの名前のテキスト フィールドと、イベントの日付と時刻の日時コントロール) を JavaScript の他の HTML5 ファイルに送信することです。解析するファイル。問題?フォーム アクションとして指定されたファイルにデータが送信されていません。
フォームを含む HTML ファイルのコード (countdown_form.html) は次のとおりです。
<!DOCTYPE html>
<html>
<head>
<title>Collecting countdown data</title>
</head>
<body>
<form method="post" action="countdown.html">
<table border="1" cellpadding="5">
<tr>
<td>Name of event to count down to</td>
<td><input name="event" type="text"></td>
</tr>
<tr>
<td>Date of event to count down to</td>
<td><input name="date" type="datetime"></td>
</tr>
</table>
<input name="Submit" type="submit">
</form>
</body>
</html>
そして、フォームデータを送信しようとしているHTMLファイルのコード(countdown.html)は次のとおりです。
<!DOCTYPE html>
<html>
<head>
<title>
<script type="text/javascript">
document.write("Countdown to " + input.text);
</script>
</title>
</head>
<body>
<table border="1" cellpadding="5">
<tr>
<td>
<script type="text/javascript" language="JavaScript">
<!--
document.write("Time left until " + input.text);
//-->
</script>
</td>
</tr>
<tr>
<td>
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">
<!--
dateFuture = new Date(input.date);
function GetCount(){
dateNow = new Date(); //grab current date
amount = dateFuture.getTime() - dateNow.getTime(); //calc milliseconds between dates
delete dateNow;
// time is already past
if(amount < 0){
document.getElementById('countbox').innerHTML="Now!";
}
// date is still good
else{
days=0;hours=0;mins=0;secs=0;out="";
amount = Math.floor(amount/1000);//kill the "milliseconds" so just secs
days=Math.floor(amount/86400);//days
amount=amount%86400;
hours=Math.floor(amount/3600);//hours
amount=amount%3600;
mins=Math.floor(amount/60);//minutes
amount=amount%60;
secs=Math.floor(amount);//seconds
if(days != 0){out += days +" day"+((days!=1)?"s":"")+", ";}
if(days != 0 || hours != 0){out += hours +" hour"+((hours!=1)?"s":"")+", ";}
if(days != 0 || hours != 0 || mins != 0){out += mins +" minute"+((mins!=1)?"s":"")+", ";}
out += secs +" seconds";
document.getElementById('countbox').innerHTML=out;
setTimeout("GetCount()", 1000);
}
}
window.onload=function(){
GetCount();
}; //call when everything has loaded
//-->
</script>
<div id="countbox"></div>
</td>
</tr>
</table>
</body>
</html>
私が知りたいのは:
- ある HTML ドキュメントから別の HTML ドキュメントにフォーム データを直接送信することは合法ですか?
- 合法である場合、<input> タグからのデータがアクション ドキュメント内の input.text および input.datetime JavaScript 変数によって解析されないのはなぜですか?
また、
- <title> タグ内に JavaScript コードを含めることは合法ですか?
- 合法である場合、Google Chrome がコードを解析しないのはなぜですか?
そして、これら 2 つのことのどちらも正当でない場合、フォーム データを次のように正確に使用するにはどうすればよいでしょうか。
- ドキュメントのタイトル。
- JavaScript が解析するデータとして?