我真的不明白为什么这段代码不起作用。
我想要做的是停止表单提交,如果其中一个字段为空并显示一个包含错误消息的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;
}
答案 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;
}