2010-04-25 7 views
0

다른 양식의 if/else가 있는데 완벽하게 작동합니다. 이제 jquery 대화 상자로 표시되는 양식에 추가했습니다. 길을 따라 오는 모든 경고는 올바른 할당을 보여 주지만 대화 상자가 열리면 아무 버튼도 선택되지 않습니다.jquery 대화 상자에서 라디오 버튼을 설정하십시오.

 $("#create-company").click(function() { 
      alert($('#primary_company').val().length); 
      if ($('#primary_company').val().length > 0) { 
       alert("if secondary"); 
       $('#secondary').attr('checked', 'true'); 
       var id = $("input:radio[name='companyType']:checked").attr('id'); 
       alert(id); 
      } 
      else { 
       alert("else primary"); 
       $('#primary').attr('checked', 'true'); 
       $('#sec').hide(); 
       var id = $("input:radio[name='companyType']:checked").attr('id'); 
       alert(id); 
      } 
      var id = $("input:radio[name='companyType']:checked").attr('id'); 
      alert(id); 
      $('#popupCreateCompany').dialog('open'); 
     }); 

대화 :

 $('#popupCreateCompany').dialog(
     { 
      autoOpen: false, 
      modal: true, 
      buttons: 
      { 
       'Add': function() { 
        var dialog = $(this); 
        var form = dialog.find('input:text, select'); 
        $.post('/company/post', $(form).serialize(), function(data) { 
         if (data.Result == "success") { 
          var id = $("input:radio[name='companyType']:checked").attr('id'); 
          if (id == "primary") { 
           $('#company').append($('<option></option>').val(data.company_id).html(data.company_name).attr("selected", true)); 
           $('#primary_company').append($('<option></option>').val(data.company_id).html(data.company_name).attr("selected", true)); 
           $('#company_id').append($('<option></option>').val(data.company_id).html(data.company_name).attr("selected", true)); 
          } 
          else { 
           $('#company_id').append($('<option></option>').val(data.company_id).html(data.company_name)); 
          } 
          dialog.dialog('close'); 
          alert("Company " + data.company_name + " successfully added."); 

         } 
         else { 
          alert(data.Result); 
         }; 
        }, "json") 
       }, 
       'Cancel': function() { 
        $(this).dialog('close'); 
       } 
      } 
     }); 

라디오 버튼 : 당신이 당신의 양식 값을 다시 초기화 콜백 메소드를 사용할 필요가 있으므로

<label>Company Type:</label> 
     <label for="primary"><input onclick="javascript: $('#sec').hide('slow');$('#primary_company').find('option:first').attr('selected','selected');" type="radio" name="companyType" id="primary" />Primary</label> 
     <label for="secondary"><input onclick="javascript: $('#sec').show('slow');" type="radio" name="companyType" id="secondary" />Subsidiary</label> 
     <div id="sec"> 
      <fieldset> 
      <label for="primary_company">Primary Company:</label> 
      <%= Html.DropDownList("primary_company", Model.SelectPrimaryCompanies, "** Select Primary Company **") %> 
      </fieldset> 
     </div> 
+0

사용 방화 광, 디버그 스크립트가, 선택기 반환 것을 확인, – queen3

답변

1

는 DOM 대화의 로딩에 변경 .

는 대화 상자의 "개방"또는 "초점"콜백 이벤트를보십시오 :

$('#popupCreateCompany').dialog({ 
     open: function(event, ui) { ... } 
}); 
+0

감사합니다 등, 그들은 체크 상태를 설정한다! 나는 열린 사건에 대해 몰랐다. – RememberME

관련 문제