Элемент управления Asp.net внутри модного fancybox не "работает" - PullRequest
0 голосов
/ 06 апреля 2010

Ваш типичный "Это не работает" происходит здесь. Любое направление поможет.

У меня есть элемент управления входом на главной странице, и я пытаюсь отобразить его только с помощью jquery fancybox, а затем перенаправить пользователя, как только он вошел в систему.

Но любые кнопки или элементы управления, которые должны что-то делать при нажатии, когда я помещаю их в необычную коробку, не реагируют. Если я оставлю div видимым, а затем использую элемент управления, не использующий fancybox, я получу ожидаемый результат.

Какие у меня варианты?

Ответы [ 4 ]

2 голосов
/ 09 сентября 2010

Это не ошибка Javascript.Я бы скорее сказал, что при использовании модального Fancybox Fancybox создает новое «окно», и вы больше не можете получить доступ к выделенному коду.

Вам нужно создать скрытое поле и функцию javascript, с помощью которой выможет отправить объект данных в скрытое поле.

Пример кода:

* Текстовое поле Fancybox (внутри fancybox) -> При отправке: кнопка Javascript создает объект (значение) текстового поля и отправляетжерех: Hiddeenfield.-> От HiddenField к тому, что вам нужно сделать ???

div#inline2 {display: none;}
.myDummyClass {height: inherit;}

<!--Link that activates the fancybox with textbox-->
<a href="#inline2" class="myDummyClass">LinkName</a>
<!--this will be shown in fancybox-->

<div id="inline2">
    <p>
        <asp:TextBox ID="tBox" runat="server" TextMode="MultiLine" Width="200px" Style="overflow:hidden; height:400px;" />
        <asp:Button runat="server" Text="Knappen" OnClientClick="Send()" />
    </p>
</div>
<input id="HiddenField" type="hidden" runat="server" />
<script>
    $(".myDummyClass").focus(function() {
        $(".myDummyClass").fancybox({
            'modal': true
        });
    });

    function Send()
    {
        document.getElementById("<%=HiddenField.ClientID %>").value = document.getElementById("<%=txt1.ClientID%>").value;
        $.fancybox.close();
    }
</script>

CodeBehind :

var SomeThing = HiddenField.Value;
0 голосов
/ 27 сентября 2011

Я не уверен, что вы должны использовать: appendTo('form').

Я думаю, вы должны изменить:

$('<div id="fancybox-title" class="' + titlec + '" />').css({
            'width'         : width,
            'paddingLeft'   : currentOpts.padding,
            'paddingRight'  : currentOpts.padding
        }).html(title).appendTo('body');

до

$('<div id="fancybox-title" class="' + titlec + '" />').css({
            'width'         : width,
            'paddingLeft'   : currentOpts.padding,
            'paddingRight'  : currentOpts.padding
        }).html(title).appendTo('form');

А

$('<div id="fancybox-title" class="' + titlec + '" />').css({
            'width'         : width,
            'paddingLeft'   : currentOpts.padding,
            'paddingRight'  : currentOpts.padding
        }).html(title).appendTo('body');

до

$('<div id="fancybox-title" class="' + titlec + '" />').css({
            'width'         : width,
            'paddingLeft'   : currentOpts.padding,
            'paddingRight'  : currentOpts.padding
        }).html(title).appendTo('form');
0 голосов
/ 27 декабря 2010

Fancybox по умолчанию добавляет тело, а не форму, поэтому ваши элементы управления не работают в состоянии по умолчанию.Чтобы исправить это, посмотрите в исходном коде причудливой коробки «appendTo ('body')» и измените его на «appendTo ('form')»

В зависимости от версии fancybox, может быть несколько мест

0 голосов
/ 06 апреля 2010

Похоже, у вас есть некоторые ошибки JavaScript на странице. Элементы управления ASP.Net часто перестают отвечать, если JavaScript не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...