gpt4 book ai didi

javascript onsubmit 在同一调用中返回两个不同的值

转载 作者:行者123 更新时间:2023-12-03 03:33:45 28 4
gpt4 key购买 nike

验证函数

     function validateForm(){
var els;
els = document.getElementById('name');
if(els.value == ''){
console.log(0);
alert('Ai uitat sa completezi numele');
return false;
}
els = document.getElementsByClassName('education');
[].forEach.call(els, function (el){
if(el.value == ''){
alert('Ai uitat unul sau mai multe campuri la educatie');
console.log(1);
return false;
}
});
console.log(2)
return false;
}

表格

<form onsubmit="return validateForm()" class="form-horizontal" action="{{ URL::to('/admin/people/') }}" method="POST" id="myForm">

我生成了动态 html,所以除了服务器端验证之外,我还进行了 javascript 验证,这样用户在页面重新加载时就不会丢失动态生成的 html。这里的问题是它同时输出1和2(如果我将第三个返回值更改为true,则提交表单),这非常奇怪......控制台中也没有显示任何错误

如果进入第一个if,它只输出0,所以我猜测这是由循环引起的?

最佳答案

这个:

            [].forEach.call(els, function (el){
if(el.value == ''){
alert('Ai uitat unul sau mai multe campuri la educatie');
console.log(1);
return false;
}
});

导致从与主函数不同的范围返回。主函数中唯一可能的两个日志值(在拦截您的提交时)是“0”或“2”。

“1”值的记录发生在完全不同的范围和线程中。而且 console.log 并不关心它来自哪个线程。它只是按照接收数据的顺序记录。

关于javascript onsubmit 在同一调用中返回两个不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45967679/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com