0

我没有运气让一个 jqueryui 对话框来 ajax 加载一个表单,然后通过 ajax 提交。

一切都有效,直到捕获正在提交的表单,而不是通过 ajax 调用发送它。因此表单动作被触发并且浏览器被重定向。从来没有进行过ajax调用。

我的代码如下

$(document).ready(function() {
$('.viewOrder').click(function() {
    $('#displayOrder').load(this.href, [], function() {
        console.log("landed here");

            $('#blah').click(function() {
                console.log("submiting the form via ajax");

                $.ajax({
                    url: "/ajax/orderupdate",
                    type: "GET",
                    data: data,
                    cache: false,

                    //success
                    success: function (data) {
                        console.log("worked:");
                    }
                });
                return false;
            });
    });
    return false;
});

});

.viewOrder 是 ajax 加载的 a href。这工作正常。我在这里阅读了许多类似的问题,似乎 load() 不执行嵌入在返回 html 中的脚本,但我的返回代码是纯 html 没有脚本。有任何想法吗?

4

2 回答 2

1

恕我直言,您应该尝试捕获submit而不是单击,这样您也可以防止通过键盘完成提交,甚至可以解决您的问题。

于 2010-09-30T19:25:57.417 回答
0

事件在页面加载时绑定。在页面加载时,您正在绑定的点击事件不存在。我使用 livequery 插件,但他们将 Live 添加到 jquery 4,您也可以使用(我在 IE 上遇到了一些问题,所以我回到 livequery)

所以用你的脚本加载 livequery http://docs.jquery.com/Plugins/livequery

和改变

$('#orderUpdate').submit(function() {

$("#orderUpdate").livequery("提交", function() {

于 2010-09-30T19:43:32.420 回答