所以我用JavaScript制作了2个函数。一个功能是检查表单中是否填写了某些必填项。如果未填写必填项,我要页面说输入为空。
这是我用Java语言编写的功能:
const myFunc = (value: boolean): Promise<true | Error> => {
return new Promise((resolve, reject) => {
if (!value) {
resolve(new Error("error msg"));
return;
}
resolve(true);
});
};
myFunc(true)
.then(r => // r true | Error
{
if(r === true){
r // r is true
}else{
r.message // r is Error
}
})
我还具有一个按钮功能,可以提醒用户发送表单的方式如下:
function checkform(form) {
//Krijg all het input van de ingevulde form
var inputs = form.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i++) {
if(inputs[i].hasAttribute("required")){
if(inputs[i].value == ""){
// Als er een leegveld is meld deze alert code:
alert("Vul alle vereisten velden in");
return false;
}
}
}
return true;
}
现在的问题是,两者都可以工作,但不能同时工作。如果我删除了alertpopup函数,则当必填字段为空时,checkform函数确实起作用,但是当我使用alertpopup函数时,提交表单时仅弹出该弹出窗口,而checkform函数在以下情况下不显示任何消息:必填字段为空。
这是我的HTML表单:
function alertpopup()
{
alert("Uw email is verzonden! U krijgt binnen 24 uur bericht van ons.")
}
那么,当用户单击“提交”按钮并且填写了所有必需的输入时,如何显示弹出窗口?
答案 0 :(得分:1)
尝试创建另一个将整个行为包装为一个函数:
function checkFormAndAlert(form) {
const formIsValid = checkform(form);
if (formIsValid) {
alertpopup();
}
// Here you can put 'else' conditions.
}
我还建议进行两项改进:混合职责是不好的(并且您的checkform
函数内部包含alert
。尝试对popupalert函数进行参数设置,以便您在内部传递警报,然后可以执行以下操作:
if (formIsValid) {
alertpopup('Correct form message');
} else {
alertpopup('Incorrect form message');
}
这应该可以帮助您,并且是一个不错的起点:)
答案 1 :(得分:0)
如果您想使alertpopup()调用空的输入,则可以在返回false之前调用它;否则,返回false。也是
function checkform(form) {
//Krijg all het input van de ingevulde form
var inputs = form.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i++) {
if(inputs[i].hasAttribute("required")){
if(inputs[i].value == ""){
// Als er een leegveld is meld deze alert code:
alert("Vul alle vereisten velden in");
return false;
}
}
}
alertpopup();
return true;
}
答案 2 :(得分:0)
我还具有一个按钮功能,可以提醒用户发送表单的方式如下:
如果格式正确,只需将其放在最后的"lat":18.7323
"lon":73.1232
方法中。像这样:
onsubmit
答案 3 :(得分:0)
您可以像使用jQuery的提交功能
$( "#form" ).submit(function( event ) {
var isvalid=checkform();
if(!isvalid){
alertpopup();
event.preventDefault();
}
});
jQuery文档link