gpt4 book ai didi

javascript - 即使验证返回 false,表单仍会提交

转载 作者:行者123 更新时间:2023-11-28 08:56:41 24 4
gpt4 key购买 nike

当我使用通用警报框时,表单验证工作正常,但如果我尝试使用 JQuery 脚本使警报框看起来不错,则尽管返回的值为 false,表单仍会验证并提交

有效的标准警报框

function validate(){
if( document.audit_form.audit_name.value == "" )
{
alert( "Please select a name for your audit" );
document.audit_form.audit_type.focus() ;
return false;
}
return true;
}

尝试使用来自 codecanyon 的 jQuery MsgBox

function validate(){
if( document.audit_form.audit_name.value == "" )
{
$.msgbox("Please select an audit type",
{
type:"alert",
buttons: [
{type: "submit", value: "Ok"}
]
},
function(result){

if (result && result=='Ok'){
return false;
}
});
}
return true();
}

与 Apprise 的尝试二

function validate(){
if( document.audit_form.audit_name.value == "" )
{
apprise('Please enter a name for your audit?', {'textOk' : 'Ok',}, function(r) {

if(r) {
return( true );
} else {
return (false);
}
});
}
}

在所有三种情况下,警报框都会在应有的时候显示,但对于 JQuery 版本,表单仍会提交。使用

调用函数
 <form id="audit_form" name="audit_form" method="post" enctype="multipart/form-data" 
action="<?php echo $_SERVER['PHP_SELF']; ?>" onsubmit="return validate();">

最佳答案

$.msgboxapprise 都不是阻塞函数,并且结果在函数回调之前返回,你应该改变你的逻辑。基本上这就是您的表单提交方式 should看起来像:

$('#audit_form').submit(function(event){
event.preventDefault();
yourUIAlertFunction(..., ..., function(isSuccess){
if(isSuccess){
submitFormLogic();
} else {
hideAlertAndShowErrors();
}
});
});

关于javascript - 即使验证返回 false,表单仍会提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18392369/

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