jQuery не обновляет содержимое вкладок в IE - PullRequest
0 голосов
/ 21 марта 2010

У меня есть страница, которая использует вкладки jQuery.В одной из моих вкладок у меня есть div, который содержит форму (изначально скрытую), которую я хочу использовать для добавления содержимого на вкладку.То, что у меня есть, прекрасно работает в Chrome, Firefox и Safari.Но в IE 7 вкладка не обновится.Сообщение работает, и данные добавляются в базу данных, но просто не будут отображать новый контент после его отправки.

Я не думаю, что это имеет значение - но просто для информации я использую Codeigniter PHPframework.

Вот мой javascript:

<script type="text/javascript">
  $(document).ready(function(){
      // initialize the addChild form as hidden until user requests it open
      $('#addChild').hide();

      // open the form
      $('#openDialog').click( function(){
          $('#addChild').slideToggle();
          return false;
      });

      // close the form
      $('#closeDialog').click( function(){
          $('#addChild').slideToggle();
          return false;
      });

      // submit the form
      $('#frmAddChild').submit( function(){
         $('#addChild').slideToggle();

         $.ajax({
             url: '/children/add',
             type: 'POST',
             data: $('#frmAddChild').serialize()
             //cache: false
         });
         //reload the children tab
         $('#tabs').tabs('load',3);
         return false;
      });

  });

  </script>

И вот мой PHP / HTML:

<?php
    // initialize the elements of the form
    $frmAddChild = array(
      'name' => 'frmAddChild',
      'id' => 'frmAddChild',
      'method' => 'post'
    );

    $child_name = array(
      'name' => 'child_name',
      'id' => 'child_name',
                );
    $child_dob = array(
        'name' => 'child_dob',
        'id' => 'child_dob'
    );
    $btnOpenDialog = array(
        'name' => 'openDialog',
        'id' => 'openDialog',
        'value' => 'true',
        'content' => 'Add Child'
    );
    $btnCloseDialog = array(
        'name' => 'closeDialog',
        'id' => 'closeDialog',
        'value' => 'true',
        'content' => 'Cancel'
    );
    // button that shows the drop down to add
    echo form_button($btnOpenDialog);
?>

<div id="addChild" title="Add Child">
    <?php echo form_open('children/add/',$frmAddChild); ?>
    <table>
        <tr>
            <td>
                <?php echo form_label('Child\'s Name', 'child_name'); ?>:
            </td>
            <td>
                <?php echo form_input($child_name); ?>
            </td>
        </tr>
        <tr>
            <td>
                <?php echo form_label('Date of Birth','child_dob'); ?>:
            </td>
            <td>
                <?php echo form_input($child_dob); ?>
            </td>
        </tr>
        <tr>
            <td colspan="2" align="right">
                <?php echo form_submit('submit', 'Add'); ?>
                <?php echo form_button($btnCloseDialog); ?>
            </td>
        </tr>
    </table>
    <?php echo form_close(); ?>
</div>

У кого-нибудь есть идеи, как я могузаставить это работать правильно в IE?Кроме того, если у кого-то есть какие-либо комментарии о том, как у меня все устроено, пожалуйста, дайте мне знать.Я новичок в Codeigniter и ни в коем случае не являюсь экспертом по javascript или jQuery.

Спасибо за вашу помощь!

1 Ответ

2 голосов
/ 21 марта 2010

Я думаю, вам следует расширить .ajax и добавить состояния .success и .error в вызов AJAX. Обратитесь к этому:

http://api.jquery.com/category/ajax/

Добавьте это как часть процесса ajax, потому что сейчас похоже, что нажатие на кнопку submit приведет к скрытию формы и перезагрузке вкладок, даже если была ошибка.

Попробуйте, удалите возвращаемое значение false и посмотрите, что произойдет.

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