我在发帖之前搜索过很多科目,但我没有找到任何有趣的东西。所以,如果我没有看到另一篇文章作为我的工作答案,我很抱歉复制......
所以,这是我的问题:我的表单,当我想提交它时,就是什么都不做。我准备了错误消息或验证消息,但在提交表单后我看不到它们......
这是我的HTML:
<form method="POST" action="#contact" onsubmit="return verifForm(this)">
<div class="group">
<?php
if(!empty($_POST['email'])) {
echo "<input id='contact-email' name='email' type='email' required onblur='verifEmail(this)' value='".$_SESSION['email']."'>";
}else {
echo "<input id='contact-email' name='email' type='email' required onblur='verifEmail(this)'>";
}
?>
<span class="bar"></span>
<label>Email</label>
</div>
<div class="group">
<?php
if(!empty($_POST['textarea'])) {
echo "<textarea name='textarea' id='contact-textarea' cols='30' onblur='verifTextarea(this)' rows='1'>".$_SESSION['textarea']."</textarea>";
}else {
echo "<textarea name='textarea' id='contact-textarea' cols='30' onblur='verifTextarea(this)' rows='1'></textarea>";
}
?>
<span class="bar"></span>
<label>Message</label>
</div>
<div class="group">
<span id="erreurjs" class="form-text text-muted"></span><br />
<input class="contact-btn" type="submit" value="Envoyer">
</div>
</form>
这是我的JS:
function verifForm(f) {
var emailOk = verifEmail(f.email);
var textareaOk = verifTextarea(f.textarea);
if (emailOk && textareaOk) {
return true;
document.getElementById('contact-message').className('contact-message-true').innerHTML('OK');
} else {
return false;
document.getElementById('contact-message').className('contact-message-false').innerHTML('NOT OK');
}
}
(其他功能正在运作)
基本上,此代码建议访问者输入他的电子邮件和他的消息。如果电子邮件无效,则他无法提交表单,文本区域的内容相同(值必须介于2和255之间)。
但就目前而言,验证电子邮件和文本区域是有效的,但似乎verifForm(f)
无法正常工作......
PS:对不起,我是法国人!
答案 0 :(得分:0)
回归是你在功能上做的最后一件事。它将结束你的功能。
所以,回归后不要放任何东西,因为它什么都不做。
要解决您的问题,只需交换return
和document.getElementById
试试这个:
function verifForm(f) {
var emailOk = verifEmail(f.email);
var textareaOk = verifTextarea(f.textarea);
if(emailOk && textareaOk){
document.getElementById('contact-message').className('contact-message-true').innerHTML('OK');
return true;
}else{
document.getElementById('contact-message').className('contact-message-false').innerHTML('NOT OK');
return false;
}
}
您也可以这样做
function verifForm(f) {
var emailOk = verifEmail(f.email);
var textareaOk = verifTextarea(f.textarea);
if(emailOk && textareaOk){
document.getElementById('contact-message').className('contact-message-true').innerHTML('OK');
return true;
}
// two command under this line will not be execute if you condition above is true. Your function will finish there.
document.getElementById('contact-message').className('contact-message-false').innerHTML('NOT OK');
return false;
}
仅供参考:您的HTML中没有标识为contact-message
答案 1 :(得分:0)
在你的JS代码中,你必须在文档错误函数之后放回。喜欢这个
function verifForm(f) {
var emailOk = verifEmail(f.email);
var textareaOk = verifTextarea(f.textarea);
if (emailOk && textareaOk) {
document.getElementById('contact-message').className('contact-message-true').innerHTML('OK');
return true;
} else {
document.getElementById('contact-message').className('contact-message-false').innerHTML('NOT OK');
return false;
}
}
答案 2 :(得分:0)
哦,谢谢你们,我是个白痴! ^^
所以我把返回放在最后一个位置,我也改变了以下代码的代码,现在它正常工作!
这是我目前的代码,如果它可以帮助其他人:
HTML:
<form method="POST" action="#contact" onsubmit="return verifForm(this)">
<div class="group">
<?php
if(!empty($_POST['email'])) {
echo "<input id='contact-email' name='email' type='email' required onblur='verifEmail(this)' value='".$_SESSION['email']."'>";
}else {
echo "<input id='contact-email' name='email' type='email' required onblur='verifEmail(this)'>";
}
?>
<span class="bar"></span>
<label>Email</label>
</div>
<div class="group">
<?php
if(!empty($_POST['textarea'])) {
echo "<textarea name='textarea' id='contact-textarea' cols='30' onblur='verifTextarea(this)' rows='1'>".$_SESSION['textarea']."</textarea>";
}else {
echo "<textarea name='textarea' id='contact-textarea' cols='30' onblur='verifTextarea(this)' rows='1'></textarea>";
}
?>
<span class="bar"></span>
<label>Message</label>
</div>
<div class="group">
<?php
if(!empty($message)){
echo $message;
$message = '';
}else {
echo '<span id="contact-message"></span><br />';
}
?>
JS:
function verifForm(f) {
var emailOk = verifEmail(f.email);
var textareaOk = verifTextarea(f.textarea);
if(emailOk && textareaOk){
document.getElementById('contact-message').className = 'contact-message-true';
document.getElementById('contact-message').innerHTML = 'Votre message a bien été envoyé';
return true;
}
document.getElementById('contact-message').className = 'contact-message-false';
document.getElementById('contact-message').innerHTML = 'Veuillez remplir tous les champs correctement.';
return false;
}