2012-05-07 3 views
1

이 jquery UI 대화 상자는 html과 ajax 호출 (양식) 값으로 채워집니다. 나는 그것을 닫거나 제출하고 다시 열어서 그것을 똑같이 재사용하고 싶다. 닫고 다시 열 수는 있지만 이전 값이 그대로 남아 있고 새로운 값이 추가됩니다. 각 닫고 다시 열면 html 값을 계속 추가합니다. 이것에 관해서는 많은 질문이 있지만 분명히 대답하지는 않습니다. 나는 가까이서, 공허하게, 파괴하려했지만, 그 조합은 내가 필요로하는 방식으로 작동하지 않는다. 어떤 아이디어?jquery ui 대화 상자를 다시 열고 비우기 및 새로 고침

$("#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("")); 

답변

0

내가 발견 한 것은 대화 상자를 닫고 HTML을 비울 수 있으며이 유형의 대화 상자 설정을 지울 수 있다는 것입니다. 다시 열기 위해 나는 첫 번째 응답의 성공 응답에서 두 번째 아약스 호출을 중첩했다.

//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 
관련 문제