【问题标题】:HTML going back to original state after Ajax callAjax 调用后 HTML 恢复到原始状态
【发布时间】:2015-02-19 10:55:35
【问题描述】:

我目前在我的 HTML 页面上有一个按钮,它使用 javascript 将 html 加载到当前页面中。在新加载的 HTML 上有可以填写的表格。当用户提交表单时,我使用 ajax 来处理它。一旦 ajax 处理表单并将信息存储到数据库中,我将调用成功函数来更改 div 中的当前 HTML。内部 HTML 会在一瞬间发生变化,但随后整个页面会恢复到原始 HTML 状态。

这是我用来提交表单的 javascript

function myFunction() {
    var deck_name = document.getElementById("deck_name").value;
    // Returns successful data submission message when the entered information is stored in database.
    var dataString = 'deckName=' + deck_name;
    if (deck_name == '') {
      alert("Please Fill All Fields");
    } 
    else {
       // AJAX code to submit form.
       $.ajax({
       type: "POST",
       url: "../API/deck_api.php",
       data: dataString,
       cache: false,
       success: function() {
                   document.getElementById('right-panel').innerHTML = loadPage('../HTML_files/edit_deck.html');
                }
       });
    }
    return false;
 }

这就是 loadPage() 的作用:

 function loadPage(href) {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", href, false);
    xmlhttp.send();
    return xmlhttp.responseText;
 }

我怎样才能做到这一点,当 ajax 成功时,它会更改 right-panel 的内容并保持这种状态,而不是完全恢复到 HTML 的原始状态。

【问题讨论】:

  • edit_deck.html 包含什么?
  • 1. loadPage 方法是做什么的 2. 缺少一些代码,因为这段代码看起来完全正确 3. 毕竟,你为什么要混合使用 jQuery 和 javascript
  • 它包含另一个表单,但该表单目前未激活。我只是想加载基本的 HTML 以查看代码是否有效,但它只会停留一瞬间。
  • 可以分享loadPage
  • 同步ajax请求?你在开玩笑吗?

标签: javascript jquery html ajax


【解决方案1】:
function myFunction() {
    var deck_name = document.getElementById("deck_name").value;
    // Returns successful data submission message when the entered information is stored in database.
    var dataString = 'deckName=' + deck_name;
    if (deck_name == '') {
      alert("Please Fill All Fields");
    } 
    else {
       // AJAX code to submit form.
       $.ajax({
       type: "POST",
       url: "../API/deck_api.php",
       data: dataString,
       cache: false,
       success: function() {
                  $("#right-panel").html(span);
        }
       });
    }
    return false;
 }

【讨论】:

  • 我按照你的建议做了,但是在 ajax 调用结束后页面仍然重新加载原始 html。
  • 零解释的答案(读者必须猜测发生了什么变化)不如自行解释的答案。
猜你喜欢
  • 2021-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-24
  • 2021-02-09
  • 2023-03-25
相关资源
最近更新 更多