停止表单提交并显示div

时间:2017-04-24 15:17:19

标签: javascript html

我真的不明白为什么这段代码不起作用。

我想要做的是停止表单提交,如果其中一个字段为空并显示一个包含错误消息的div,这就是js

type value =
    | Num    of float
    | String of string
    | List   of my_list
and my_list =
    | Cons   of value * my_list
    | nil

这是html

function validate4(){
    var n4 = document.getElementById("announcementNewTitle");
    var n5 = document.getElementById("announcementNewURL");
    var n6 = document.getElementById("announcementNewDesc");
    if(n4.value != "" || n5.value != "" || n6.value != ""){
        var container = document.getElementById("successcontainer");
        container.style.display = "block";
        return false;
    }
    return true;
}

4 个答案:

答案 0 :(得分:0)

<form onsubmit="validate(event)">

function validate(e) {
    var isValid = true; // perform your check here

    if (!isValid) {
        e && e.preventDefault();
    }
}

但是,最好不要内联事件。 做你想做的事情的首选方式是:

<form name="form-feedback">

document.forms['form-feedback'].addEventListener('submit', validate);
// note: no parentheses next to "validate"

答案 1 :(得分:0)

我建议您捕获提交事件,例如使用jQuery:

$('#yourFormId').on('submit', function (ev) {
  // then, where you want to stop, run:
  ev.preventDefault();
})

通过这种方式,您可以阻止默认行为,即在提交表单信息时将其发送到目的地。

答案 2 :(得分:0)

这是正确的代码。如果它不起作用,请打开开发工具并检查控制台中是否有任何错误。

function validate4(){
    var n4 = document.getElementById("announcementNewTitle");
    var n5 = document.getElementById("announcementNewURL");
    var n6 = document.getElementById("announcementNewDesc");
    if(n4.value.trim() == "" || n5.value.trim() == "" || n6.value.trim() == ""){
        var container = document.getElementById("successcontainer");
        container.style.display = "block";
        return false;
    }
    return true;
}

答案 3 :(得分:0)

只需添加此行,您就可以了(如果您不想使用jQuery):

function validate4(){
    var n4 = document.getElementById("announcementNewTitle");
    var n5 = document.getElementById("announcementNewURL");
    var n6 = document.getElementById("announcementNewDesc");
    if(n4.value != "" || n5.value != "" || n6.value != ""){
        var container = document.getElementById("successcontainer");
        container.style.display = "block";
        event.preventDefault();//<----Added line
        return false;
    }
    return true;
}