javascript - 在 jQuery 中通过 Ajax 请求创建 Ajax 表单

标签 javascript jquery

客户端正在向服务器发出请求。 我需要参与该请求,并使表单按钮与 Ajax 配合使用。

这段代码非常适合链接:

var pagination_render = function() {
    var pagination = $('.pagination a');
    pagination.each(function() {
        $(this).click(function(event) {
            load_server(this.href, '.houseindex');
            return false;
        });
    });
};
pagination_render();

我尝试了很多方法来使 Ajax 按钮正常工作,这是其中的尝试之一:

var contact_user = function () {
    $('.expanded').find('#submit').each(function() {
        $(this).unbind('click');
    });

    $('.expanded').each(function() {
        $(this).find('#submit').click(function(event) {
            form_submit($(this).parent(), '.contactuser .msg');
            return false;
        });
    });
}

只要 Ajax 调用成功,它就会遍历所有展开的项目,然后绑定(bind)一个点击事件。

现在,有时此代码可以工作,有时则不能。当它不起作用时,它会禁用我设置的其他事件(切换链接)。 似乎我需要等待几毫秒才能将组件加载到 DOM 中。我需要吗?

最佳答案

所以当你打电话 contact_user 时我明白了你:

  1. 首先从提交按钮取消绑定(bind)任何先前绑定(bind)的点击事件。我发现一个可能的问题是您正在寻找 #submit 的 id 。一个页面中只能有一个 id。因此你只需要使用$('#submit').each(...)或者,如果页面中有多个提交按钮,则如果 .expanded 中有多个提交按钮,则使用类。项目或仅使用 $('.expanded :submit')
  2. 添加点击提交按钮时的自定义事件。同样的事情,你可以通过 $('.expanded :submit') 来简化它或者如果您确实只有一个 id 为 submit 的按钮(很困惑)。与$('#submit')一起去.

结论:

var contact_user = function(){
   $('.expanded :submit').unbind('click');
   $('.expanded :submit').click(function(){
      form_submit($(this).parent(), '.contactuser .msg');
      return false;
   });
};

:submit选择器将选择所有 <input type="submit" /> .

关于javascript - 在 jQuery 中通过 Ajax 请求创建 Ajax 表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2282724/

相关文章:

javascript - 输入类型编号最大长度 5

javascript - 页面加载时显示文本区域的所有行

javascript - GWT - ListBox,如何预览 changeEvent

jquery - 如何使用更少的代码使用填充/边距值计算元素的宽度和高度?

Javascript 'Node' 在 IE8 及以下未定义

javascript - 删除带有特殊字符的 HTML 元素

javascript - 在 Angular UI 网格中显示数据

javascript - 尝试向 JavaScript 输出添加前导 "$"

jquery - iDangerous swiper 参数更改即使使用 reInit() 也没有效果

jquery - 媒体查询在 jQuery 之后不起作用