javascript - 提交使用 jQuery 和 AJAX 动态插入页面的表单?

标签 javascript jquery ajax

我有一个使用 JavaScript 生成的表单,然后插入到弹出的模态窗口中。

直到 DOM 生成整个页面之后,我的表单 HTML 才会生成或插入到页面中(它是由 Socket post 事件触发的,然后该事件使我的弹出窗口打开并插入此表单的 HTML)

页面中还可以插入多个表单,而不仅仅是 1 个。

这是生成并插入页面的表单代码示例...

<form action="/" id="logCallForm" class="logCallForm">
    <div class="col-xs-10">
        <input class="form-control input-sm" type="text" name="subject" placeholder="Subject">
        <br><input type="hidden" name="qmsId" value="1c885762-27d5-58ef-9f95-527ae750c9be">
        <input type="hidden" name="dateTime" value="2013-11-07 01:05:19">
    </div>
    <input type="submit" value="Save Call">
</form>

现在下面是一些已经在同一页面上运行的 JavaScript,我的目标是能够使用 AJAX 发布这些表单。现在它似乎没有检测到代码,但当我点击提交按钮时,它会加载一个新页面,而不是尝试通过 AJAX 提交。

请帮帮我?我很确定这与页面加载后添加的表单有关?

$(function () {

    $('.logCallForm').on('submit', function (e) {

        var url = '/custom/modules/nam_call_logger/call_server.php';

        $.ajax({
               type: "POST",
               url: url,
               data: $(this).serialize(), // serializes the form's elements.
               // qmsId dateTime subject
               success: function(data)
               {
                   alert(data); // show response from the php script.
               }
        });
        e.preventDefault();

    });

});

最佳答案

尝试以活泼的方式订阅:

$(document).on('submit', '.logCallForm', function (e) {

基本上,这将订阅与选择器匹配的元素的 submit 事件,即使这些元素在您进行订阅时尚不存在(也称为页面的 DOM 加载) 。它将监听 future 可能添加到 DOM 中且与选择器匹配的元素。

关于javascript - 提交使用 jQuery 和 AJAX 动态插入页面的表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21615037/

相关文章:

javascript - 如何保存动态创建的复选框的更改状态

javascript - 如何在 wordpress 上移动 iframe?

javascript - 如何避免在react中保存错误的输入数据?

javascript - 在nodejs中操作html文档服务器端?

javascript - 使用 JavaScript 模拟 Tab 按键

javascript - AJAX回调后如何选择点击的链接类或ID

javascript - 有没有办法阻止链接打开但仍被索引?

javascript:Lodash 拒绝查询

javascript - 我的 div 使用 show() 正确淡入,但在动画完成后它会跳起来

javascript - 如何使用 React 从 JSON 对象加载图像?