добавить новую опцию в выпадающий список после JQuery диалога и публикации - PullRequest
0 голосов
/ 22 апреля 2010

У меня есть форма для ввода субподрядов. В этой форме у меня есть выпадающий список всех компаний в системе. Рядом с ней находится кнопка «Создать компанию». Эта кнопка открывает диалог jquery, который позволяет пользователю создать новую компанию. После закрытия диалога новую компанию необходимо добавить в выпадающий список и выбрать. Если я обновляюсь, он есть, но мне нужно сделать это без обновления формы, потому что я не хочу, чтобы пользователь терял все, что он ввел в другие поля. Я не уверен, как это сделать, потому что у меня нет 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 голосов
/ 22 апреля 2010

Я понял. Я вернул 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');
                        }
                    }
                });
...