Ich habe ein Formular, das mit HTML validiert ist, ich habe paar Funktionen einige von ihnen können auf das Formular zugreifen und die anderen können nicht!Javascript und HTML-Formulare
hier ist meine Form:
<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>
und das ist mein Skript, es in zwei Teile geteilt ist, einer von ihnen mit der Form in der gleichen Datei ist und der andere in einer anderen Datei:
das ist der Teil mit der 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>
und dies ist in der Datei:
// 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);
}
}
Hilfe benötigen, um das Skript aus der Datei Zugriff auf die Formularfelder.
UPDATE:
Ich habe es geschafft, dieses Problem zu lösen. Das Problem ist in dieser Funktion
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;
}
Die Funktion send()
zu einer anderen Seite verbinden und sendet Daten durch sie eine E-Mail, wenn ich die innerHTML
des form
geändert haben vor dem Aufruf der Funktion die Funktion break
gemacht, wenn versuchen, den Zugang ein Feld, das nicht existiert.
Was genau ist passiert? Erhalten Sie Fehler? Läuft dein Skript überhaupt? – Oded
nichts! Die Warnungen in der separaten Datei werden nicht ausgeführt, aber das Skript in der gleichen Datei mit dem Formular wird ausgeführt. – sikas
Vielleicht prüfen, ob die andere Datei in Ihrem HTML als Skript-Tag enthalten ist. In der Tat sollten Sie Ihren Kopfabschnitt für uns bekannt geben. – jmort253