【发布时间】:2016-12-27 19:32:13
【问题描述】:
在发布我的主题之前,我搜索了很多主题,但没有发现任何有趣的东西。因此,如果我没有看到另一篇带有有效答案的帖子,我很抱歉重复...
所以,这是我的问题:我的表单,当我想提交它时,不要做任何事情。我已经准备了错误消息或验证消息,但提交表单后我看不到它们...
这是我的 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:对不起,我是法国人!
【问题讨论】:
-
附注:函数中
return之后没有任何内容。 -
线路不工作是
document.getElementById('contact-message').className('contact-message-true').innerHTML('OK');对吗? -
在您的 html 中,它们没有 ID 为“contact-message”的元素
-
@Natsathorn 你是对的,它可能不起作用,但它不应该停止脚本,因为它在
return之后,对吧?
标签: javascript html forms validation