1

这个 jquery ui 对话框充满了来自 ajax 调用(有效)的 html 和表单值。我想关闭或提交它,然后重新打开并重新使用它。我可以关闭并重新打开,但它仍然存在旧值,然后添加了新值。每次关闭并重新打开后,它都会不断添加 html 值。SO上有很多关于这个的问题,但我没有看到明确的答案。我尝试过关闭、清空、销毁,但组合并没有按照我需要的方式工作。有任何想法吗?

$("#StoreForm").dialog({
    autoOpen:false, 
    width:500, 
    height:900, 
    modal:true,
    buttons: { 
   OK: function() { 
   $('#StoreForm').dialog('close'); 
$(this).dialog('hide');
$(this).dialog('empty'); 
 }, 
 'Save': function() { 
  $(this).dialog('empty'); 
 } 

 }

 });


 //additional code to click and open the dialog

 $(".sel").unbind('click');
 $(".sel").on("click", function(e){
e.preventDefault();                 
 $("#StoreForm").dialog('open');
 var valueSelected = $(this).closest('tr').children('td.item').text();                                  
$.ajax({
url: 'query/categories.cfc',
dataType: 'json',
cache: false,
data: {method: 'getProductInfo', 
                                queryFormat: 'column',
                            returnFormat: 'JSON',
productID:   valueSelected

},
success: function(response, status, options){
$("#PROD_SUPER_ID").val(response.DATA.PROD_SUPER_ID[0]);

$("#color").val(response.DATA.COLOR_ATTRIB);

                            $("#SIZE_ATTRIB").val(response.DATA.SIZE_ATTRIB);

$("#price").val(response.DATA.PRICE);
var w = [];
w.push("<p>", response.DATA.ICON[0], "</p>", "<p>", 
      response.DATA.FULL_DESCRIPTION [0], "</p>") 
                            $("#StoreForm").prepend(w.join(""));
4

1 回答 1

0

我发现你可以关闭对话框并清空 html,它会清除这种类型的对话框设置。为了重新打开,我将第二个 ajax 调用嵌套在第一个成功响应中。

 //set up dialog with options

$("#StoreForm").dialog({
autoOpen: false,
width: 500,
height: 500,
modal: true,
buttons: {
    Cancel: function(){

        $('#StoreForm').dialog('close');
        $('#StoreForm').html("");

    },

//pop-up individual items

    "Add to Cart": function(){
            $.ajax({
            url: $("#storeCart").attr('action'),
            data: $("#storeCart").serializeArray(),
            type: 'POST',
            success: function(response){

                  var name = $( "#name" ),
    email = $( "#email" ),
    password = $( "#password" ),
    allFields = $( [] ).add( name ).add( email ).add( password ),
    tips = $( ".validateTips" );

if you have any questions please respond. Thanks
于 2012-05-21T13:07:26.287 回答