2010-04-21 87 views
0

我有一個窗體來輸入分包合同。在這個表格中,我有一個系統中所有公司的下拉列表。在它旁邊是一個按鈕「創建公司」。這個按鈕打開一個jQuery對話框,允許用戶創建一個新公司。對話框關閉後,需要將新公司添加到下拉列表中並進行選擇。如果我刷新,它就在那裏,但我需要做,而不刷新表單B/C我不希望用戶放鬆他們已經進入其他領域的一切。我不確定如何做到這一點b/c我沒有新公司的guid/company_id。在jquery對話框後添加dropdownlist的新選項,併發布

我的jQuery的對話框:

$('#popupCreateCompany').dialog(
       { 
        autoOpen: false, 
        modal: true, 
        buttons: 
        { 
         'Add': function() { 
          var dialog = $(this); 
          var form = dialog.find('input:text, select'); 
          $.post('/company/create', $(form).serialize(), function() { 
           dialog.dialog('close'); 
          }) 
         }, 
         'Cancel': function() { 
          $(this).dialog('close'); 
         } 
        } 
       }); 


     $("#create-company").click(function() { 
      $('#popupCreateCompany').dialog('open'); 
     }); 

公司領域:

<label for="company">Company:</label> 
      <%= Html.DropDownList("company", Model.SelectCompanies, "** Select Company **") %> 
      <%= Html.ValidationMessage("Company", "*") %> 
      <button type="button" id="create-company" >Create Company</button> 

的SelectList聲明:

SelectCompanies = new SelectList(subcontractRepository.GetPrimaryCompanies(), "company_id", "company_name", Subcontract.company); 

回答

0

我知道了。我用指導返回了一個Json。

  $('#popupCreateCompany').dialog(
       { 
        autoOpen: false, 
        modal: true, 
        buttons: 
        { 
         'Add': function() { 
          var dialog = $(this); 
          var form = dialog.find('input:text, select'); 
          $.post('/company/create', $(form).serialize(), function(data) { 
           alert(data.Result); 
           if (data.Result == "success") { 

            $('#company').append($('<option selected="selected"></option>').val(data.company_id).html(data.company_name)); 
           }; 
           dialog.dialog('close'); 
          }, "json") 
         }, 
         'Cancel': function() { 
          $(this).dialog('close'); 
         } 
        } 
       });