2011-11-23 63 views
0

我想要做的是打开jquery对话框,它工作得很好。它会加载在页面上加载的内容。制作一个选择单击确定按钮并将选择存储到隐藏的变量中。直到这一点,一切正常。jquery对话框传给父值

现在一旦对话框关闭,我想立即触发该隐藏表单变量上的事件。请指教。

使对话被称为像这样

$('#dialog').dialog({ 
      dialogClass: 'no-close', 
      resizable: false, 
      draggable: false, 
      modal: true, 
      width: 900, 
      buttons: { 
       "OK": function(){ 
        $(this).dialog("close"); 
        var temp = $("#name").val(); 
        var temp2 = $("#id").val(); 
        $("#" + val1).val(temp); 
        $("#" + val2).val(temp2); 

         $("#hiddenID").change(); 


       }, 
       "Cancel": function(){ 
        $(this).dialog("close"); 



       } 
      } 
     }); 

形式

对我有这样的

$("#hiddenID").change(function(){ 
     // alert($("#hiddenID").val()); 
     }).change(); 
+0

那么是什么问题?这应该起作用,即当点击“确定”按钮时应该调用您的更改事件。除非您忘记声明'val1'和'val2',在这种情况下,会在$(“#hiddenID”)。change();'行到达之前引发异常。 – Cito

+0

well val1 and val2 is passed,but not not get $(“#hiddenID”)。change(function(){ // alert($(“#hiddenID”).val()); })。change (); –

+0

你确定吗?尝试评论2行。另外,由于您在更改处理程序中注释了警报,因此如何知道它未被调用? – Cito

回答

0

添加关闭功能,以您的对话框。当它结束时,它会触发任何你想要的。

$('#dialog').dialog({ 
      dialogClass: 'no-close', 
      resizable: false, 
      draggable: false, 
      modal: true, 
      width: 900, 
      buttons: { 
       "OK": function(){ 
        $(this).dialog("close"); 
        var temp = $("#name").val(); 
        var temp2 = $("#id").val(); 
        $("#" + val1).val(temp); 
        $("#" + val2).val(temp2); 

         $("#hiddenID").change(); 


       }, 
       "Cancel": function(){ 
        $(this).dialog("close"); 



       } 
      }, 
      close: function(event, ui){ 
      //whatever you want to happen on close - regardless of how the dialog is closed 
      } 
     });