user_name 入力フィールドが入力されているかどうかを送信時にチェックするフォームを作成しています。そうである場合は、jQuery UIダイアログ ボックスが表示されます。「はい」を押すと、回答が変数userOKWithItに送信され、 submit()関数の 2 回目の呼び出しで使用されます。
たとえば、ユーザーが Firebug コンソールを使用して空の user_name でフォームを送信できないようにするため、これを行っています ( ( 'form).submit()を書き込みます)。
これは正しい方法ですか?本質的な何かが欠けているような気がします。ユーザーの回答を格納するグローバル変数のアイデアは好きではありません。コードは次のとおりです。
var $dialog = $('<div></div>')
.html('<p>Are you sure you want to continue?</p>')
.dialog({
autoOpen: false,
resizable: false,
title: 'Continue anyway?',
buttons: {
"Yes": function() {
$( this ).dialog( "close" );
userOkWithIt = true;
$('form').submit();
},
No: function() {
$( this ).dialog( "close" );
}
}
});
var userOkWithIt = false;
$('form').submit(function(){
if(!$('input[name="user_name"]').val()){
//Don't submit because there is no user name written
return false;
}else{
$dialog.dialog('open');
if(userOkWithIt){
return true;
}
}
});