-1

当我提交我的表单 ajax 总是重定向到 some.php,我如何防止它重定向到 PHP 脚本,而不是在提交表单后我希望页面重定向到 index.html

<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

an 的默认行为<input type="submit">是提交表单。

有两种方法可以解决此问题。第一个是简单地制作你input的 a button。这将阻止浏览器发送表单。

更好的方法是独立于 JavaScript 并使用@Jeemusu 所说preventDefault()的,用于防止提交发生。

于 2013-09-13T06:42:51.277 回答
0

或者您可以附加到表单的“onsubmit”事件。并在该函数中返回 false。IE:

$('#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 回答
0

尝试

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

});

或者

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

而不是使用type="submit"你可以使用:

type="button"

或者您可以使用.preventDefault();

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

});
于 2013-09-13T06:45:12.557 回答