【问题标题】:Javascript Ajax Reload DivJavascript Ajax 重新加载 Div
【发布时间】:2013-07-10 05:06:27
【问题描述】:

我有以下代码,但它刷新了整个页面而不是“终端”div。

有什么线索吗?

<div id="terminal" name="terminal" class="terminal"><?php include('terminal.php');?></div>

<script type="text/javascript" >
$('#com').submit(function(e) {
   e.preventDefault();
   $.ajax({  
     type: "POST",  
     url: "comandos.php",  
     data: $(this).serialize(),  
     success: function() {  
       $('#terminal').load('terminal.php');
     }  
   });
});
</script>

<form id="com" name="com" action="" method="post">
<pre><?php echo $prompt;?> <input id="text" type="text" name="text" class="inputclass"     size=60 autofocus="true"/></pre>
  <input name="submit" id="submit" type="submit" style="display:none"     class="inputclass"/>
</form>

【问题讨论】:

  • 因为你要提交表单

标签: javascript ajax forms html refresh


【解决方案1】:

你的提交监听器应该返回false,防止浏览器正常提交表单

$('#com').submit(function(e) {
   e.preventDefault();
   $.ajax({  
     type: "POST",  
     url: "comandos.php",  
     data: $(this).serialize(),  
     success: function() {  
       $('#terminal').load('terminal.php');
     }  
   });
   return false;
});

【讨论】:

  • 我明白了,但仍然无法正常工作。整个页面重新加载而不是“终端”div
  • 难道脚本根本没有被调用?
【解决方案2】:

提交表单的正常操作或结果是再次重新加载它,这就是您得到的。因此,要停止这种“正常”行为,您只需要return fasle

请查看javascript-to-stop-form-submission

$('#com').submit(function (e) {
    e.preventDefault();
    $.ajax({
        type: "POST",
        url: "comandos.php",
        async: false,
        data: $(this).serialize(),
        success: function () {
            $('#terminal').load('terminal.php', function () {
                return false;
            });
        }
    });
});

【讨论】:

  • 这不是关于 e.. 在 load 的完整功能中放这个“return false”
  • 我明白了,但仍然无法正常工作。整个页面重新加载而不是“终端”div
  • 难道脚本根本没有被调用?
  • 我添加了一个警报框并且没有被调用...任何线索?
猜你喜欢
  • 2015-05-11
  • 2011-10-23
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多