Javascript JQuery 未显示警报弹出窗口

Javascript JQuery alert popup not showing up

我尝试使用 JQuery 制作警报弹出窗口,我希望该弹出窗口在用户单击提交但未填写表单时显示。如果我测试我的代码并将表单留空并单击 'submit' 页面只是刷新并且没有显示任何警告消息

这是我在 HTML 中的表格:

<h3>Vul deze gegevens in zodat wij voor u kunnen matchen</h3>

<form action="" id="form">
    <label for="datum"><strong>Welke locatie?*</strong></label><br>
    <br>
    <input list="brow" class="form-input" id="locatie">
    <datalist id="brow">
        <option value="Barcelona">
        <option value="Japan">
        <option value="Noordpool">
        <option value="Noord-korea">
        <option value="Rome ">
    </datalist>
    <br><br>
    <label for="datum"><strong>Welke datum?*</strong></label><br>
    <br>
    <input class="form-input" type="date" id="datum" name="datum" value="19/04-2018">
    <br><br>
    <input class="form-input" id="submit" name="submit" type="submit" value="Versturen">
</form>

这是我在JQuery/Javascript中的功能:

$('#submit').on('click',function(){
    if ( $(".form-input").val().length === 0 ) {
        alert('Vul alle velden in voordat u probeert te verzenden');
        return false;
    }
});

有谁知道我做错了什么? 还有另一种方法来检查表单是否为空吗? 感谢任何形式的帮助

遍历表单中存在的所有输入字段:

$('#submit').on('click',function()
{
    $('#form input').each(function() {
        if ($(this).val() === '') {
            alert('Vul alle velden in voordat u probeert te verzenden');
            return false;
        }
    });
});

您需要监听表单的 submit 事件。点击事件监听器不能阻止submit动作,所以return false;来自点击监听器在这里没有任何作用。尝试这样的事情:

$('#form').on('submit',function(event)
    {
        let err = false;
        $(".form-input").each(function () {
            if ($(this).val().length == 0) {
                alert('Vul alle velden in voordat u probeert te verzenden');
                err = true;
                return false;
            }
        });
        if(err){
            event.preventDefault();
        }
    });

找不到错误

https://jsfiddle.net/zbty4kwd/

编辑:空日期输入(同样的方式)https://jsfiddle.net/zbty4kwd/1/

// find elements
var banner = $("#banner-message")
var button = $("button")

// handle click and add class
button.on("click", function(){
  banner.addClass("alt")
})

 $('#submit').on('click',function()
        {
            if ( $(".form-input").val().length === 0 ) {
                alert('Vul alle velden in voordat u probeert te verzenden');
                return false;
            }

        });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<form action="" id="form">
    <label for="datum"><strong>Welke locatie?*</strong></label><br>
    <br>
    <input list="brow" class="form-input" id="locatie">
    <datalist id="brow">
        <option value="Barcelona">
        <option value="Japan">
        <option value="Noordpool">
        <option value="Noord-korea">
        <option value="Rome ">
    </datalist>
    <br><br>
    <label for="datum"><strong>Welke datum?*</strong></label><br>
    <br>
    <input class="form-input" type="date" id="datum" name="datum" value="19/04-2018">
    <br><br>
    <input class="form-input" id="submit" name="submit" type="submit" value="Versturen">
</form>

$('#submit').on('click',function()
 {       
   var allfields=$(".form-input");
    var isFormValid=true;
    for(var i=0;i<allfields.length;i++)
    {
       if(allfields[i].value != undefined)
       {
         if(allfields[i].value.length===0)
         {
           alert('Vul alle velden in voordat u probeert te verzenden');
           isFormValid=false;
           break;
         }
       }
    }
    return isFormValid;
 }