一般的なアラート ボックスを使用すると、フォームの検証は正常に機能しますが、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 で 2 回試行する
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);
}
});
}
}
3 つのすべてのインスタンスで、警告ボックスが表示されるべきときに表示されますが、JQuery バージョンではフォームは引き続き送信されます。関数は次を使用して呼び出されます
<form id="audit_form" name="audit_form" method="post" enctype="multipart/form-data"
action="<?php echo $_SERVER['PHP_SELF']; ?>" onsubmit="return validate();">