私はHTMLを使って検証されたフォームを持っていますが、私はそれらのうちのいくつかはフォームにアクセスでき、もう1つはできません!ここjavascriptとhtmlのフォーム
は私のフォームです:
<form id="contactForm" action="javascript:submitForm()" method="post">
<table align="center">
<tr>
<th>Name:</th>
<td><input type="text" id="name" name="name" value="a" /></td>
</tr>
<tr>
<th>email:</th>
<td><input type="text" id="email" name="email" value="[email protected]" /></td>
</tr>
<tr>
<th>Message:</th>
<td><textarea type="text" id="message" name="message">msg</textarea></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Login" /></td>
</tr>
</table>
</form>
、これが私のスクリプトであり、それは、二つの部分に分け、それらの一つは、同じファイルにフォームであり、他方は別のファイルになっている。
これは、フォームと一部です:
<script type="text/javascript">
function check()
{
name = document.getElementById('name').value;
email = document.getElementById('email').value;
message = document.getElementById('message').value;
if(name.length == 0 || email.length == 0 || message.length == 0)
{
alert("Name Required\nEmail Required\nMessage Required");
return false;
}
else
{
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
var address = email;
if(reg.test(address) == false)
{
alert("Email Invalid");
return false;
}
}
return true;
}
var form;
function submitForm()
{
if(check() == false)
return false;
else
{
form = document.getElementById('contactForm').innerHTML;
document.getElementById('contactForm').innerHTML = "<h3>Sending ...</h3>";
send();
setTimeout("restoreForm()",1000);
}
return false;
}
function restoreForm()
{
document.getElementById('contactForm').innerHTML = form;
}
</script>
、これはファイルである:
// JavaScript Document
function createObject()
{
var request_type;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer")
{
request_type = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
request_type = new XMLHttpRequest();
}
return request_type;
}
var http = createObject();
var usr;
var psw;
function send()
{
alert(document.getElementById('name').value);
alert(document.getElementById('email').value);
alert(document.getElementById('message').value);
contactName = encodeURI(document.getElementById('name').value);
contactEmail = encodeURI(document.getElementById('email').value);
contactMessage = encodeURI(document.getElementById('message').value);
http.open('get', 'send.php?name='+contactName+'&email='+contactEmail+'&message='+contactMessage);
http.onreadystatechange = loginReply;
http.send(null);
}
function loginReply()
{
if(http.readyState == 4)
{
var response = http.responseText;
alert(response);
if(response == 0)
//document.getElementById('submitForm').innerHTML = "<h6>Sending Failed</h6>";
alert('failed');
else
//document.getElementById('submitForm').innerHTML = "<h6>Message Sent</h6>";
alert('sent');
//setTimeout("restoreForm()",1000);
}
}
は、ファイルからスクリプトをフォームフィールドにアクセスさせるのに役立つ必要があります。
UPDATE:
私はこの問題を解決するために管理しています。問題は、この機能
function submitForm()
{
if(check() == false)
return false;
else
{
form = document.getElementById('contactForm').innerHTML;
document.getElementById('contactForm').innerHTML = "<h3>Sending ...</h3>";
send();
setTimeout("restoreForm()",1000);
}
return false;
}
send()
が別のページに接続する機能であり、機能がbreak
に関数を作っ呼び出す前に、私はform
のinnerHTML
変更されたときに、それを介して電子メールで送信するデータを送信するときにアクセスしよう存在しないフィールド。
で
そして
?エラーが出ていますか?あなたのスクリプトはまったく動いていますか? – Oded
何もない!別のファイルのアラートは実行されませんが、フォームと同じファイルのスクリプトは実行されます。 – sikas
他のファイルがHTMLにスクリプトタグとして含まれているかどうかを確認することがあります。実際には、私たちのためにあなたの頭のセクションを投稿する必要があります。 – jmort253