我正在制作一个表单,在提交时检查 user_name 输入字段是否已填写。如果是则提示一个jQuery UI对话框。如果按下“是”,则答案将发送到变量userOKWithIt,然后用于第二次调用submit()函数。
我这样做是因为我不希望用户能够使用 Firebug 控制台提交带有空用户名的表单(例如在其中写入('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;
}
}
});