отправка форм внутри iframe в диалоге jquery - PullRequest
0 голосов
/ 03 августа 2011

, поэтому в настоящее время я использую диалоговое окно с iframe внутри (страница из того же домена), чтобы вернуть значение из iframe на страницу, в которой находится диалог.Все отлично работает, кроме случаев, когда я отправляю форму.Когда я отправляю форму поиска и пытаюсь нажать на «а», чтобы получить значение идентификатора для ввода ничего не происходит.Вот пример того, что я делаю.

здесь страница с диалоговым окном

    <html>
    <head>
    <script>
    $(document).ready(function(){
       $('a#booksearch_lnk').click(function(){
            $('.choosebookbox').dialog('open').css('display','block');
                $('#choosebookframe').contents().find('a.choosebook').click(function(){
                    // alert($(this).attr('id'));
                    $("#isbn").val($(this).attr('id'));
                    $('.choosebookbox').dialog("close");
                });
        });
       });
    </script>
    </head>
    <body>
    <div class="choosebookbox" style="display:none">
<h4>Choose your first book</h4><div align="center" style="width: 500px; height: 500px"><iframe scrolling="no" id="choosebookframe" src="http://www.myurl.com/choosebook.php" width="100%" frameborder="0" height="100%"></iframe></div>
    </body>

и вот страница iframe ...

<html>
<head>
</head>
<body>
<div style="width:600px;height:600px;">
<form action="<?php echo $PHP_SELF;?>" method="get">
<input type="text" name="search" style="width:150px"/>
<input type="submit" value="search" class="orangebtnsm" />
</form>
<? if(isset($_GET['search'])){
    $search = $_GET['search'];
 echo "search for $search";
 echo "<ul>";
 echo "<li><a id='2345676898' class='choosebook'>Book 5</a>";
  echo "<li><a id='1985563345' class='choosebook'>Book 6</a>";
 echo "</ul>";
}
?>
<ul>
<li><a id="1234567898" class="choosebook">Book 1</a></li>
<li><a id="2345676898" class="choosebook">Book 2</a></li>
<li><a id="9854645645" class="choosebook">Book 3</a></li>
<li><a id="1985563345" class="choosebook">Book 4</a></li>
</ul>
</div>
</body>
</html>

1 Ответ

1 голос
/ 03 августа 2011

Я бы сказал, попробуйте использовать обработчик событий, ориентированный на будущее.

Замена

$('#choosebookframe').contents().find('a.choosebook').click(function(){...

С

$('#choosebookframe').contents().find('a.choosebook').live('click',function(){

Я думаю, что привязка теряется при отправке формы.

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