我有一个使用jQuery标签的页面。在我的一个标签中,我有一个包含一个表单(最初隐藏)的div,我想用它来向标签添加内容。我在Chrome,Firefox和Safari中的功能非常完美。但是,在IE 7中,选项卡不会刷新。帖子工作和数据被添加到数据库中,但在提交后它根本不会显示新内容。
我认为这不重要 - 但是,仅仅是为了获取信息,我也使用了Codeigniter PHP框架。
这是我的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专家。
感谢您的帮助!
答案 0 :(得分:2)
我认为你应该扩展.ajax并在AJAX调用中添加.success和.error状态。请参阅:
http://api.jquery.com/category/ajax/
将其添加为ajax进程的一部分,因为现在它看起来像命中提交将隐藏表单并重新加载选项卡,即使出现错误。
尝试一下并删除返回false,看看会发生什么。