javascript - 使用 JavaScript 进行表单验证始终为 true

标签 javascript if-statement validation

添加了更多文本,因为 stackoverflow 说代码太多

HTML

<form name="contact">
    <fieldset>
        <label class="labelone" for="naam">Naam:</label>
        <input name="naam">
        <label for="email">Email:</label>
        <input name="email">
        <label for="boodschap">Boodschap:</label>
        <textarea name="boodschap"></textarea>
    </fieldset>
    <fieldset>
        <input class="btn" type="button" onClick="valideren()" value="Verzenden" />
        <div id="resultaat"></div>
    </fieldset>
</form>

JavaScript

function valideren() {
    if (document.getElementsByName('naam').value != '' && document.getElementsByName('email').value != '' && document.getElementsByName('boodschap').value != '') {
        document.getElementById('resultaat').innerHTML = "De e-mail werd verstuurd";
    } else {
        document.getElementById('resultaat').innerHTML = "Gelieve alle velden in te vullen!";
    }
}

为什么这总是返回 true?

提前致谢!

斯蒂恩

最佳答案

如果您阅读here ,您将看到 document.getElementsByName 返回一个 NodeList,而不是单个 Node

<强> Click for live working demo

var naam = document.getElementsByName('naam')[0].value,
    email = document.getElementsByName('email')[0].value,
    boodschap = document.getElementsByName('boodschap')[0].value,
    target = document.getElementById('resultaat');

现在:

if (naam.length && email.length && boodschap.length) {
    target.innerHTML += "valid";
} else {
    target.innerHTML += "invalid";
};

关于javascript - 使用 JavaScript 进行表单验证始终为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16598966/

相关文章:

javascript - Node.js 中的模块

javascript - JQuery 更改特定元素内的类名

ruby-on-rails - 如何验证输入的价格?

php - 文件类型 PHP 验证

flutter - 如何从 flutter 的文本字段中显示验证错误消息

javascript - ajax中从字符串中提取十进制数字

javascript - javascript/typescript/Angular 中的逗号分隔符

java - 为什么我的 for 循环只返回 JTable 中的第一个值?

for-loop - 批处理,如何执行存储在变量或txt文件中的代码?

javascript - 当我使用选择选项时如何设置输入值?带有 if 的 Java 脚本