私はこれまでこれを行ったことがないので、問題を十分に説明しなかったり、正しい構文をすべて使用しなかったりした場合は、お詫び申し上げます。
私のウェブサイトにあるのはメールフォームです。ユーザーは、名前やその他のデータとともにメッセージを入力できます。フォームへの記入が完了すると、フォームを送信できます。フォームは私のメールアドレスに送信され、すべて問題ありません。フォームにはJavaScriptが含まれているため、CSSで自動的に非表示にしてから、JavaScriptで表示できるようにしました。そうすれば、ユーザーがJavaScriptをオフにしている場合、フォームは表示されません。
そしてそれは素晴らしい働きをします。そして、それも素晴らしい表示だと思いました。すべてのローカルテストブラウザ(Chrome 21、FF 14、IE 9、Opera 12、Safari 5)と、IE 8、7、6用のAdobeBrowserラボで確認しました。すべてのブラウザで見事に見えました。私はそれを私のAndroid携帯電話と私のガールフレンドのブラックベリーでさえチェックしました。見栄えが良かった。
IE 8を使用して母のコンピューターでテストするまで、Adobe Browserlabではフォームが表示されると表示されますが、実際のテストではフォームは表示されません。
ここで自分でテストできます。
問題はフォームID「emailForm」にあります。私のフォームには次のようなマークアップがあります。
<form id="emailForm" method="POST" action="../javascript/email_form.php" onSubmit="return validateForm();">
<label id="emailSubjectLabel">Email Subject*:</label><input class="form" title="Email Subject" type="text" name="subject" id="emailSubject"><br>
<label id="nameLabel">Your Name*:</label><input class="form" title="Your Name" type="text" name="name" id="yourName"><br>
<label id="emailLabel">Your Email:</label><input class="form" title="Your Email Address" type="text" name="email" id="yourEmail"><br>
<label id="messageLabel">Your Message*:</label>
<textarea class="form" title="Write Something..." name="message" id="message" cols="40" rows="5"></textarea>
<input class="button" type="submit" value="Submit">
<p class="error">* required.</p>
</form>
私のCSSにはたくさんのコードがありますが、フォームを非表示にすることに関しては次のようになっています。
#emailForm, #javaText {
display: none;
}
(注:#javaTextは、ユーザーがJavaScriptをインストールしていない限り非表示になる画面上のテキストです。また、IE 8では機能しません。簡単にするために、ここでは言及しません。)
そしてJavaScriptは次のようになります:
document.getElementById("emailForm").style.display = "block";
document.getElementById("javaText").style.display = "inline";
function validateForm() {
//function that validates the form
}
JavaScriptをページの下部に配置しました。これが役立つことを願っています。メインのHTMLページでコンテンツのスタイルを変更してみました。母のJavaScriptを確認したところ、有効になっています。なぜ機能しないのかわかりません。
誰かが私が間違っていることを教えてくれたら、私はとても感謝しています。これは私に一週間頭痛を与えています。
(はい、私は彼女のIEがダメだと言ったので、彼女はChromeを使うべきですが、彼女がそうしない理由はまったく別の話です...)
ご協力いただきありがとうございます。解決策が何であるかを聞くのが待ちきれません!