在jquery对话框和post后添加新选项到dropdownlist

时间:2010-04-21 20:40:38

标签: jquery asp.net-mvc ajax post drop-down-menu

我有一个表格来输入分包合同。在此表格中,我有一个系统中所有公司的下拉列表。旁边是一个“创建公司”按钮。此按钮打开一个jquery对话框,允许用户创建一个新公司。对话框关闭后,需要将新公司添加到下拉列表中并进行选择。如果我刷新,它就在那里,但我需要这样做而不刷新表单b / c我不希望用户放弃他们输入到其他字段的所有内容。我不知道怎么做这个b / c我没有新公司的guid / company_id。

我的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);

1 个答案:

答案 0 :(得分:0)

我明白了。我带着guid回了一个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');
                        }
                    }
                });