2013-05-25 4 views
0

div 안에 폼이 있습니다. 대화 상자를 열 때 폼의 값과 폼의 값을 가져옵니다. 취소를 누르고 다시 요소의 현재 값을 열면 요소를 채우고 요소가 나타납니다 만 값이 부족합니다. 방화범을 보면 값이 있음을 알 수 있습니다.jQuery 대화 상자 모달 폼이 다시 열릴 때 값을 잃습니다.

이것은 내 대화 코드입니다.

$("#divForm").dialog({ 
     autoOpen: false, 
     height: 500, 
     width: 350, 
     modal: true, 
     buttons: { 
      "Save changes": function() { 

       var bValid = true; 
       allFields.removeClass("ui-state-error"); 
       bValid = bValid && checkLength(fname, "fname", 2, 80); 
       bValid = bValid && checkLength(mi, "mi", 0, 5); 
       bValid = bValid && checkLength(lname, "lname", 2, 80); 
       bValid = bValid && checkLength(add1, "add1", 5, 80); 
       bValid = bValid && checkLength(add2, "add2", 0, 50); 
       bValid = bValid && checkLength(city, "city", 3, 50); 
       bValid = bValid && checkLength(state, "state", 2, 50); 
       bValid = bValid && checkLength(zip, "zip", 2, 20); 

       if (bValid) { 

        $("#disp_fname").html(fname.val()); 
        $("#fname").html(fname.val()); 

        $("#disp_mi").html(mi.val()); 
        $("#mi").html(mi.val()); 

        $("#disp_lname").html(lname.val()); 
        $("#lname").html(lname.val()); 

        $("#disp_add1").html(add1.val()); 
        $("#add1").html(add1.val()); 

        $("#disp_add2").html(add2.val()); 
        $("#add2").html(add2.val()); 

        $("#disp_city").html(city.val()); 
        $("#city").html(city.val()); 

        $("#disp_state").html(state.val()); 
        $("#state").html(state.val()); 

        $("#disp_zip").html(zip.val()); 
        $("#zip").html(zip.val()); 

        $("#disp_country").html(country.find(":selected").text()); 
        $("#country").html(country.val()); 
       } 

       $(".ui-dialog-content").dialog("close"); 

      }, 
      Cancel: function() { 

       $(".ui-dialog-content").dialog("close"); 
      } 
     }, 
     close: function(event, ui) { 
      allFields.val("").removeClass("ui-state-error");     
     } 
    }) 

이것은 내 양식 코드입니다.

<div id=divForm title="Edit Information" class="ui-dialog-content ui-widget-content"> 

     <form id="niceForm" style="margin-top: 10px"> 
      <input class=textinput name=fname id=fname type=text size='<?=$fname[2]?>' value="<?=$client->fname?>" placeholder="<?=$fname[0]?>"> 

      <?$mi = $formFields['mi'];?> 
      <input class=textinput name=mi id=mi type=text size='<?= $mi[2]?>' value="<?=$client->mi ?>" placeholder="<?=$mi[0]?>"><br /> 

      <?$lname = $formFields['lname'];?> 
      <input class=textinput name=lname id=lname type=text size='<?=$lname[2]?>' value="<?=$client->lname ?>" placeholder="<?=$lname[0]?>"><br /> 

      <?$add1 = $formFields['add1'];?> 
      <input class=textinput name=add1 id=add1 type=text size='<?=$add1[2]?>' value="<?=$client->add1 ?>" placeholder="<?= $add1[0]?>"><br /> 

      <?$add2 = $formFields['add2'];?> 
      <input class=textinput name=add2 id=add2 type=text size='<?=$add2[2]?>' value="<?=$client->add2 ?>" placeholder="<?=$add2[0]?>"><br /> 

      <?$city = $formFields['city'];?> 
      <input class=textinput name=city id=city type=text size='<?=$city[2]?>' value="<?=$client->city ?>" placeholder="<?=$city[0]?>"><br /> 

      <?$state = $formFields['state'];?> 
      <input class=textinput name=state id=state type=text size='<?=$state[2]?>' value="<?=$client->state ?>" placeholder="<?=$state[0]?>"> 

      <?$zip = $formFields['zip'];?> 
      <input class=textinput name=zip id=zip type=text size='<?=$zip[2]?>' value="<?=$client->zip ?>" placeholder="<?=$zip[0]?>"><br /> 

      <?$country = $formFields['country_index'];?> 

      <select style="margin: 5px 0px; width:303px" name=country_index id=country_index> 
       <? foreach($country[3] AS $k=>$v) { 
        $country_index = $v['country_index']; 
        $country = $v['country']; 
        if($client->country_index == $country_index) { 
         $selected = " SELECTED"; 
        }else{ 
         $selected = " "; 
        } 
        echo '<option value=' . $country_index . ' ' . $selected . '>' . $country . '</option>'; 
       }?> 
      </select> 
     </form> 
    </div> 

아마 문제를 구글, 대화 DIV 몸에 재-추가하지 않고 그 사건을 심하지 않는, 여기 (열기 전에 그 같은 양식을 닫은 후 내 불을 지르고 코드의 경우 평화입니다 그것)

<body> 
<div id="wrapper"> 
<div id="footer" style="margin_top: 30px"> 
<div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-front ui-dialog-buttons ui-draggable ui-resizable" style="position: absolute; height: auto; width: 350px; top: 462px; left: 496px; display: none;" tabindex="-1" role="dialog" aria-describedby="divForm" aria-labelledby="ui-id-1"> 
<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix"> 
<div id="divForm" class="ui-dialog-content ui-widget-content" style="width: auto; min-height: 0px; max-height: none; height: 388px;"> 
<form id="niceForm" style="margin-top: 10px"> 
<input id="fname" class="textinput" type="text" placeholder="First Name" value="Gastón" size="27" name="fname"> 
<input id="mi" class="textinput" type="text" placeholder="MI" value="" size="3" name="mi"> 
<br> 
<input id="lname" class="textinput" type="text" placeholder="Last Name" value="Cortés" size="37" name="lname"> 
<br> 
<input id="add1" class="textinput" type="text" placeholder="Address 1" value="Ave Sta Barbara 205" size="37" name="add1"> 

어떤 문제가 있었습니까? 이 닫혀 때

답변

1

당신은 양식의 값을 모두 삭제됩니다

close: function(event, ui) { 
     allFields.val("").removeClass("ui-state-error");     
    } 

가 .val를 제거() 비트 :

close: function(event, ui) { 
     allFields.removeClass("ui-state-error");     
    } 
+0

와우 그게 내가 대화 생각 어떤 이유로, 사실 요소는 양식의 실제 양식과 독립적입니다. 대단히 감사합니다. – gastoncs

관련 문제