jQuery Диалоговое окно UI с обратной передачей кнопки ASP.NET

Мы создадим логический индекс с cumsum для подмножества слов

f1 <- function(vec, n) {
    vec[cumsum(nchar(vec)) < n]
  }

f1(list, 10)
#[1] "the"   "quick"

f1(list, 15)
#[1] "the"   "quick" "brown"
294
задан Peter Mortensen 18 August 2013 в 08:35
поделиться

8 ответов

Вы близки к решению, просто получаете не тот объект. Это должно быть так:

jQuery(function() {
    var dlg = jQuery("#dialog").dialog({
                         draggable: true,
                         resizable: true,
                         show: 'Transfer',
                         hide: 'Transfer',
                         width: 320,
                         autoOpen: false,
                         minHeight: 10,
                         minwidth: 10
                     });
    dlg.parent().appendTo(jQuery("form:first"));
});
314
ответ дан 23 November 2019 в 01:36
поделиться

В первую очередь это потому, что jQuery перемещает диалог за пределы тегов формы, используя DOM . Переместите его обратно в теги формы, и оно должно работать нормально. Вы можете убедиться в этом, проверив элемент в Firefox.

21
ответ дан 23 November 2019 в 01:36
поделиться

Переместите диалоговое окно в правильном направлении, но это следует делать только при нажатии кнопки, открывающей диалоговое окно. Вот некоторый дополнительный код в образце пользовательского интерфейса jQuery:

$('#create-user').click(function() {
    $("#dialog").parent().appendTo($("form:first"))
    $('#dialog').dialog('open');
})

Добавьте вашу asp: кнопку в диалог, и она работает хорошо.

Примечание: вы должны изменить

1
ответ дан 23 November 2019 в 01:36
поделиться
$('#divname').parent().appendTo($("form:first"));

Using this code solved my problem and it worked in every browser, Internet Explorer 7, Firefox 3, and Google Chrome. I start to love jQuery... It's a cool framework.

I have tested with partial render too, exactly what I was looking for. Great!

<script type="text/javascript">
    function openModalDiv(divname) {
        $('#' + divname).dialog({ autoOpen: false, bgiframe: true, modal: true });
        $('#' + divname).dialog('open');
        $('#' + divname).parent().appendTo($("form:first"));
    }

    function closeModalDiv(divname) {
        $('#' + divname).dialog('close');
    }
</script>
...
...
<input id="Button1" type="button" value="Open 1" onclick="javascript:openModalDiv('Div1');" />
...
...
<div id="Div1" title="Basic dialog" >
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
       <ContentTemplate>
          postback test<br />
          <asp:Button ID="but_OK" runat="server" Text="Send request" /><br />
          <asp:TextBox ID="tb_send" runat="server"></asp:TextBox><br />
          <asp:Label ID="lbl_result" runat="server" Text="prova" BackColor="#ff0000></asp:Label>
        </ContentTemplate>
    <asp:UpdatePanel>
    <input id="Button2" type="button" value="cancel" onclick="javascript:closeModalDiv('Div1');" />
</div>
37
ответ дан 23 November 2019 в 01:36
поделиться

Решение Роберта Маклина, набравшее наибольшее количество голосов, является правильным на 99%. Но единственное дополнение, которое может потребоваться, как и я, - это всякий раз, когда вам нужно открыть это диалоговое окно jQuery, не забудьте добавить его к родительскому элементу. Как показано ниже:

var dlg = $ ('# questionPopup'). Dialog ('open'); dlg.parent (). appendTo ($ ("form: first"));

1
ответ дан 23 November 2019 в 01:36
поделиться

FWIW, метод form: first у меня не сработал.

Однако метод из той статьи в блоге сработал:

http://blog.roonga.com. au / 2009/07 / using-jquery-ui-dialog-with-aspnet-and.html

В частности, добавление этого в объявление диалога:

  open: function(type,data) {
    $(this).parent().appendTo("form");
  }
34
ответ дан 23 November 2019 в 01:36
поделиться

ken Ответ выше сделал уловок для меня. Проблема с принятым ответом состоит в том, что она работает только, если у вас есть один модаль на странице. Если у вас есть несколько модали, вам нужно будет сделать это встроенным в «открытом» параметрам при инициализации диалогового окна, а не после того, как этот факт.

open: function(type,data) { $(this).parent().appendTo("form"); }

Если вы делаете то, что первый принятый ответ сообщает вам с несколькими модалами, вы получите только последний модал на странице, работающих поступлениям правильно, не все их.

24
ответ дан 23 November 2019 в 01:36
поделиться

Фантастика! Это решило мою проблему с ASP: событие кнопки не срабатывает внутри модального окна jQuery. Обратите внимание: использование модального окна jQuery UI со следующими параметрами позволяет запускать событие кнопки:

// Dialog Link
$('#dialog_link').click(function () {
    $('#dialog').dialog('open');
    $('#dialog').parent().appendTo($("form:first"))
    return false;
});

Следующая строка является ключом к тому, чтобы это работало!

$('#dialog').parent().appendTo($("form:first"))
7
ответ дан 23 November 2019 в 01:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: