Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui jquery通过多个对话框将值返回给调用它的函数_Jquery Ui_Dialog - Fatal编程技术网

Jquery ui jquery通过多个对话框将值返回给调用它的函数

Jquery ui jquery通过多个对话框将值返回给调用它的函数,jquery-ui,dialog,Jquery Ui,Dialog,我有一个有许多对话框的应用程序,并创建了一个函数来打开一个对话框并将数据加载到其中,因此其他函数可以打开一个对话框并处理用户选项 问题是当我调用openDialog时,它会停止调用它的函数。我认为通过添加一个返回值,当点击一个按钮时,调用函数可以处理用户的响应 function customer_crud(op) { var formData = $("#customer_details_form").serialize(); var debugData = formData.replace(/

我有一个有许多对话框的应用程序,并创建了一个函数来打开一个对话框并将数据加载到其中,因此其他函数可以打开一个对话框并处理用户选项

问题是当我调用openDialog时,它会停止调用它的函数。我认为通过添加一个返回值,当点击一个按钮时,调用函数可以处理用户的响应

function customer_crud(op)
{
var formData = $("#customer_details_form").serialize();
var debugData = formData.replace(/&/g,'<br />');

var text = "<p>Customer Function: " + op + "</p><p>" + debugData + "</p>";
if(openDialog('DEBUG', text)){
    alert("TRUE");
} else {
    alert("FALSE");
}

}

function openDialog(title, text) {

   var dialogOpts = {
    title: title,
    modal: true,
    autoOpen: false,
    buttons: {
              "Delete all items": function() {
                $( this ).dialog( "close" );
                return true;
            },
            Cancel: function() {
                $( this ).dialog( "close" );
                return false
            }
    }

    };

    $("#dialog").dialog(dialogOpts);

    $("#dialog").html(text).dialog('open');
功能客户积垢(op)
{
var formData=$(“#客户_详细信息_表单”).serialize();
var debugData=formData.replace(/&/g,
); var text=“客户功能:”+op+”

“+debugData+”

”; if(openDialog('DEBUG',text)){ 警惕(“真实”); }否则{ 警告(“假”); } } 函数openDialog(标题、文本){ 变量dialogOpts={ 标题:标题,, 莫代尔:是的, 自动打开:错误, 按钮:{ “删除所有项目”:函数(){ $(此).dialog(“关闭”); 返回true; }, 取消:函数(){ $(此).dialog(“关闭”); 返回错误 } } }; $(“#dialog”).dialog(dialogOpts); $(“#dialog”).html(text.dialog('open');
}

上面的代码打开对话框,但在选择任何内容之前抛出false。如果有人能帮我或给我一个更好的方法,我会非常感激

我计划将dialogOpts传递给函数,但将其放在那里进行测试


谢谢

openDialog函数中没有返回值。这就是为什么您总是会出错。

您不可能真正拥有这样的对话框,因为它不是同步/阻塞的,更好的方法是在单击对话框按钮时调用所需的方法,如下所示:

function customer_crud(op)
{
  var formData = $("#customer_details_form").serialize();
  var debugData = formData.replace(/&/g,'<br />');

  var text = "<p>Customer Function: " + op + "</p><p>" + debugData + "</p>";
  openDialog('DEBUG', text);
}

function delete_items() {
  alert("Deleting!");
}

function openDialog(title, text) {
  var dialogOpts = {
    title: title,
    modal: true,
    autoOpen: false,
    buttons: {
      "Delete all items": function() {
        $(this).dialog("close");
        delete_items();
      },
      Cancel: function() {
        $(this).dialog("close");
      }
    }
  };
  $("#dialog").dialog(dialogOpts)
             .html(text).dialog('open');
}
功能客户积垢(op)
{
var formData=$(“#客户_详细信息_表单”).serialize();
var debugData=formData.replace(/&/g,
); var text=“客户功能:”+op+”

“+debugData+”

”; openDialog(“调试”,文本); } 函数delete_items(){ 警告(“删除!”); } 函数openDialog(标题、文本){ 变量dialogOpts={ 标题:标题,, 莫代尔:是的, 自动打开:错误, 按钮:{ “删除所有项目”:函数(){ $(此).dialog(“关闭”); 删除_项(); }, 取消:函数(){ $(此).dialog(“关闭”); } } }; $(“#dialog”).dialog(dialogOpts) .html(text).dialog(“打开”); }
我有一个可以从多个按钮调用的对话框。过程中只有一个步骤会根据按下哪个按钮而改变。根据按钮的不同,对话框的结果进入不同的字段。因此,在调用对话框之前,我在click函数中设置了一个变量。然后,在我的对话框中,我有一个switch语句,它检查变量并将值添加到相应的字段中。同样,您也可以使用switch语句来执行不同的功能,具体取决于您正在调用的对话框

function openDialog(title, text) {
  var dialogOpts = {
    title: title,
    modal: true,
    autoOpen: false,
    buttons: {
      "Delete all items": function() {
        switch (item_type) {
                                    case "primary":
                                        ...
                                        break;
                                    case "insurance":
                                        ...
                                        break;
                                    case "safety":
                                        ...
                                        break;
                                    case "sales":
                                        ...
                                        break;
                                }
                                $(this).dialog('close');
      },
      Cancel: function() {
        $(this).dialog("close");
      }
    }
  };
  $("#dialog").dialog(dialogOpts)
             .html(text).dialog('open');
}