【问题标题】:Bootstrap modal form changes not being detected未检测到引导模式形式更改
【发布时间】:2017-05-25 03:05:36
【问题描述】:

我在引导模式中有一个表单,我试图用它来编辑记录值。但是,未检测到更改。当我编辑任何字段并保存模式时,jquery 的 .serialize() 函数仍在获取最初显示在模式中的旧值。我确认没有通过更改模式中的值来检测新值,然后在控制台中使用 jquery 命令来显示字段的当前值。所以问题不在于 .serialize() 函数。浏览器(或 jquery)只是不接受更改。

我在程序的其他部分使用了模态,它们运行良好。所以我已经进行了比较,但没有看到任何可以使它在程序的一部分上工作但不是在这里的东西。

这是来自模态的原始输入:

<input type="text" class="form-control" id="immundesc" name="immundesc" value="original value">

我将模态框上的值更改为“我的更改”,但控制台仍显示原始值:

$("#immundesc").val(); "original value"

只是一些附加信息。该模式是从一​​个 ajax 生成的表的链接启动的。我已经在我的程序的其他一些领域取得了成功,但是通过使用表格中的按钮来代替。不知道这是否与它有关。

有没有人遇到过类似的情况?

【问题讨论】:

    标签: jquery ajax bootstrap-modal


    【解决方案1】:

    我不明白你的麻烦。如果 DOM 中只有一个带有 immundesc 标识符的输入,那么它可以正常工作。尝试使用下面的sn-p。

    $("button").click(function() {
     console.log($("#immundesc").val());
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="text" class="form-control" id="immundesc" name="immundesc" value="original value">
    <button>Change value and click Me!</button>

    检查您的页面是否有重复的 immundesc 标识符。

    【讨论】:

    • 我的输入没有任何重复的标识符。无论如何,我尝试更改 id 和 name 只是为了看看这是否是问题,并且仍未检测到更改。我知道这看起来很简单。这很奇怪。
    【解决方案2】:

    我实际上有 2 个模态设置。一种用于添加记录,另一种用于未检测到用于编辑的更改。我这样做是因为我在页面的不同区域中使用了添加模式来进行许多不同的插入。我认为将添加和编辑分开会更容易,因此我的代码会更好地组织。我尝试对添加和编辑使用相同的模式,并且成功了!它现在可以立即检测到更改。

    似乎 bootstrap 或 jquery 不喜欢在页面上设置 2 个模式。有谁知道这个原因或知道这个限制吗?如果是这样,请分享您的知识,以便其他开发人员可以避免此问题。

    谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多