【问题标题】:Dom Value After Ajax CallAjax 调用后的 Dom 值
【发布时间】:2011-11-14 00:31:01
【问题描述】:

我有一张表,其中一个字段的标题是安全密码。在该字段中,有一个调用 AJAX 函数的输入按钮。返回时的 AJAX 函数会更新安全密码字段中的密码。这会更新该字段的 DOM 值。

在同一页面上,我还有另一个函数,它使用 Javascript 将表中的所有元素解析为一个数组。问题是 Javascript 函数正在写入最初在安全密码字段中的内容,而不是 AJAX 函数将其更新为的内容。

似乎 Javascript 不会提取当前的 DOM 值,而是加载页面时的 DOM 值。这是 Javascript 的默认性质吗?如果是,我该如何解决这个问题,以便获取表中所有字段的当前值,而不仅仅是页面加载值。

此脚本是用 PHP/Javascript 编写的,在此先感谢您的帮助。

【问题讨论】:

    标签: php javascript ajax dom


    【解决方案1】:

    将表中的所有元素解析为数组的 Javascript 函数使用 document.ready 函数或仅在 Page 加载时加载一次。

    在原版 JS 中

    document.addEventListener('DOMContentLoaded', (event) => {
       //Where you wrote your function
    })
    

    jQuery

    $(document).ready(function() {
        // where you have your function if you are using Jquery
    });
    

    并且 AJAX 调用不会重新加载页面。这意味着您的 Javascript 函数不会被执行,因此它不会使用来自调用的新数据更新数组。

    您需要将 Javascript 作为 AJAX 调用的 successcomplete 属性的回调函数。

    jQuery.ajax({
        type: 'POST',
        url: ajaxurl,
        success: function() {
    
            parsingFunction();
    
        },
        error: function() {
            alert(errorThrown);
        }
    });
    

    【讨论】:

      【解决方案2】:

      您是否尝试使用隐藏的输入字段来存储数据而不是更新文本输入?或者您可以尝试使用data-xxx attributes

      最好的,

      【讨论】:

        猜你喜欢
        • 2013-09-08
        • 2014-11-01
        • 2018-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-11
        • 2020-07-17
        相关资源
        最近更新 更多