2

次のコードがありますが、「ターミナル」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>
4

2 に答える 2

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;
            });
        }
    });
});
于 2013-07-11T19:28:14.143 に答える
0

ブラウザがフォームを正常に送信しないように、送信リスナーは false を返す必要があります

$('#com').submit(function(e) {
   e.preventDefault();
   $.ajax({  
     type: "POST",  
     url: "comandos.php",  
     data: $(this).serialize(),  
     success: function() {  
       $('#terminal').load('terminal.php');
     }  
   });
   return false;
});
于 2013-07-11T19:25:51.580 に答える