jQuery.ajax:第一步。它没有去网址

时间:2010-11-18 22:44:48

标签: jquery ajax

我在下面有这个代码。我提交表格之后我预计它将转到“/frontend_dev.php/coche1/new”,但它永远不会(我在相应的方法中添加了一个模具(“输入”),但是没有显示“输入”)... < / p>

<script type="text/javascript" src='http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js'></script>

<script type="text/javascript">
$(document).ready(function () {
    $('.formulario').submit(function () {
        form_data = $.param($(this).serializeArray());
        $.ajax({
            url: "/frontend_dev.php/coche1/new",
            type: "POST",
            data: form_data,
            success: function () {
                alert("Data Saved: ");
            }
        });
    });
});
</script>


<form class="formulario" id="1">
    <input type="submit" value="Save">
    <label for="coche1_marca">Marca</label>
    <input type="text" id="coche1_marca" value="FJSDF" name="coche1[marca]">  
    <label for="coche1_modelo">Modelo</label>
    <input type="text" id="coche1_modelo" value="FJSDÑF" name="coche1[modelo]">  
</form>

任何帮助?

此致

哈维

3 个答案:

答案 0 :(得分:3)

您需要在.submit()处理程序的末尾返回false。否则它会触发AJAX,但是也会立即提交表单,这会导致页面重新加载,因为表单本身没有任何操作。添加return false表示AJAX按预期触发。

答案 1 :(得分:2)

您没有对prevent the default action提交表单做任何事情,因此它将其提交到action属性中指定的URL(尽管由于您未能包含该强制属性,因此它使用当前URL) 。这发生在XHR请求返回之前,因此成功方法永远不会触发。

答案 2 :(得分:1)

使用此

...
$('.formulario').submit(function (event)
{
     event.preventDefault(); // This will stop the form from submitting.
     ...
     return false; // Should also stop the form from submitting, but have ran into cases where it does not. Still, include it for good measure.
}

以下是关于事件参数的一些其他注意事项:

event.preventDefault() // Stops default actions, link redirection, form submission, etc...
event.stopPropagation() // Stops the event from propagating up the DOM tree.
event.stopImmediatePropagation() // Stops the current event and ALL other events on the element from propagating any further up the DOM tree.

有关JQuery中事件传播的更多信息,请参阅此处:http://www.c-sharpcorner.com/UploadFile/satisharveti/665/Default.aspx