【问题标题】:Jquery Ajax Form Submission: multiple forms - same button-id'sJquery Ajax 表单提交:多个表单 - 相同的按钮 ID
【发布时间】:2015-02-19 09:32:43
【问题描述】:

现在它似乎没有问题,但我想知道......假设您有多个表单(每个在不同的页面上),每个表单都有不同的 id。

每个表单都有一个按钮,ID 为“btnSave”。在母版页(模板)中,我添加了 ajax-formhandling-scripts 的所有链接,如下所示:

$(document).ready(function() {
    // ignore the submit
    $("#frmNews").submit(function() {
        return false;
    });

    // catch the click-event
    $("#btnSave").on("click", function() {
        // input control
        // ajax-request if input was ok  
    }
});

在继续构建之前,我想确定使用相同的按钮 ID 不会给我带来问题。我在这里工作错了吗?

【问题讨论】:

  • 重复的id 属性值无效 - 它们必须是唯一的。请改用class。
  • “相同 ID”= 警报。你不能有相同的ID。 ID 是唯一标识符。改用类。

标签: javascript jquery ajax forms onsubmit


【解决方案1】:

重复的id 属性值无效 - 它们必须是唯一的。请改用class。此外,从设计的角度来看,您应该将所有逻辑挂在form 的submit 事件上。试试这样的:

$(document).ready(function() {
    // ignore the submit
    $(".frmNews").submit(function(e) {
        // input control
        if (input_control_ok) {
            // $.ajax()...
        }
        else {
            e.preventDefault(); // stop form submission
        }
    });
});

.btnSave 按钮应该添加了 type="submit" 属性,假设它还没有。

【讨论】:

  • 感谢这个有用的提示!我看到你使用 e.preventDefault 但我经常碰到他们建议使用 e.defaultPrevented 的教程。 e.preventDefault 还是更好吗?
  • defaultPrevented 只是一个布尔属性,指示是否使用了preventDefault() - 它们不是一回事。
猜你喜欢
  • 1970-01-01
  • 2015-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
相关资源
最近更新 更多