2

我正在开发网络应用程序,当我尝试验证并提交这样的表单时,它工作正常。

                var res = confirm ("Are u want to continue?")
                if (res)
                {
                    var stra_validator = $("#form").validate(form_rule);
                    stra_validator.reset();
                    return stra_validator.form();

                }else{
                    $('#someID').focus();
                    return false;
                }

但是当我尝试使用 jQuery 对话框时,我是这样使用的

                      var btns = {};
                      btns['Yes'] = function(){ 
                          $(this).dialog("close");

                          var stra_validator = $("#form").validate(form_rule);
                    stra_validator.reset();
                    return stra_validator.form();// continue the process 
                      };
                      btns['No'] = function(){ 
                          $(this).dialog("close");
                                     $('#someID').focus();
                    return false;
                      };
                      $("<div></div>").dialog({
                        autoOpen: true,
                        title: 'Condition',
                        modal:true,
                        buttons:btns
                      });

它没有继续下一步我的意思是不提交。但是,如果我单击“否”,则它正在聚焦。我在这里做错了什么?请帮帮我吗?提前致谢。

4

1 回答 1

0

我认为 $(this).dialog() 在按钮上下文中是错误的。

尝试这个:

var btns = {};
btns['Yes'] = function() {

  // Here you have to reference the real dialog
  $('#dialog').dialog("close");
  alert('come here');
  var stra_validator = $("#form").validate(form_rule);
  stra_validator.reset();

  return stra_validator.form();
  // continue the process
};
btns['No'] = function() {
  $('#dialog').dialog("close");
  $('#someID').focus();

  return false;
};

// Never created a div on the fly but it's working well and I just added an ID
$('<div id="dialog"></div>').dialog({
autoOpen : true,
title : 'Condition',
modal : true,
buttons : btns
});
于 2013-01-15T09:25:04.217 回答