-1

フォームを送信すると、ajax は常に some.php にリダイレクトされます。ページを index.html にリダイレクトしたいフォームを送信した後、これが PHP スクリプトにリダイレクトされないようにするにはどうすればよいですか

<html>
<head>
<meta charset="utf-8">
<title>jQuery Adapter &mdash; CKEditor Sample</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
<script src="../ckeditor.js"></script>
<script src="../adapters/jquery.js"></script>
<script src="jquery.form.js"></script>

<script>
    CKEDITOR.disableAutoInline = true;

    $( document ).ready( function() {
        $( '#editor1' ).ckeditor(); // Use CKEDITOR.replace() if element is <textarea>.
        $( '#editable' ).ckeditor(); // Use CKEDITOR.inline().
    } );

    function setValue() {
        $( '#editor1' ).val( $( 'input#val' ).val() );
    }
</script>
</head>

<body>
<form id="f1" action="some.php" method="post" enctype="multipart/form-data">
<table>
    <tr>
        <td>Title:</td>
        <td><input type="text" name="articletitle" id="articletitle" required/></td>
    </tr>
    <tr>
        <td>Featured Image:</td>
        <td><input name="MAX_FILE_SIZE" value="2097152" type="hidden">
        <input name="image" id="image" type="file" required/></td>
    </tr>
    <tr>
        <td colspan="3"><textarea cols="80" id="editor1" name="editor1" rows="10"></textarea></td>
    </tr>
    <tr>
        <td><input id="save" type="submit" value="Save"></td>
    </tr>
</table>
</form>

<script type="text/javascript">

$(document).ready(function(){
    $("#save").click(function(){
        $("#f1").ajaxForm();
    });
});
</script>
</body>
</html>

これについて私を助けてください。

4

5 に答える 5

1

これを試して:

$(document).ready(function(){
    $("#save").click(function(e){
        e.preventDefault();
        $("#f1").ajaxForm();
    });
});

入力がページをリダイレクトするというデフォルトの動作を実行するのを防ぐ必要があります。

編集:

別のページにリダイレクトするには、次のようなものを使用する必要があります。

window.location.href = 'http://www.google.com';

ajax の Success イベントについて。

編集2:

このフィドルを試してください:http://jsfiddle.net/4hF6e/3/参照が正しいことを確認してください。AjaxFormプラグインには、ボタンのデフォルトの動作を防ぐ方法があるようです。

于 2013-09-13T06:42:13.327 に答える
1

のデフォルトの動作は<input type="submit">、フォームを送信することです。

これを修正するには 2 つの方法があります。1 つ目は、単純にinputaを作成することbuttonです。これにより、ブラウザがフォームを送信できなくなります。

ただし、より良い方法は、JavaScript に依存せず、@Jeemusu が言ったことを使用preventDefault()して、送信が発生しないようにすることです。

于 2013-09-13T06:42:51.277 に答える
0

試す

$("#save").click(function(e){
        e.preventDefault();
        $("#f1").ajaxForm();

});

また

$("#save").click(function(){
        $("#f1").ajaxForm();
        return false;
});
于 2013-09-13T06:43:24.453 に答える
0

または、フォームの「onsubmit」イベントにアタッチすることもできます。そして、その関数で false を返します。すなわち:

$('#f1').submit(function() {
  // do your ajax stuff... and when completed (success) redirect 
  // using document.location.href = 'index.html';
  return false;
});
于 2013-09-13T06:51:35.167 に答える