【问题标题】:Displaying local storage variables without page refresh在不刷新页面的情况下显示本地存储变量
【发布时间】:2013-12-19 03:32:44
【问题描述】:
  1. 我能够传递 displayMessage 变量,但页面会重新加载。我一直在看 ajax 教程,但我不确定如何在不重新加载页面的情况下传递 displayMessage。

  2. 我想在手机上存储多条消息。因此,如果我发送“帮助我 stackoverflow”,那么“请”,它们都会被存储。 (现在“请”将取代“帮助我...”)。

    // this is my form
    <form role="form">
    <div class="form-group">
    <textarea class="form-control" id="message" rows="3"></textarea>
    </div>
    <button type="submit" id="submit" class="btn btn-default">Submit</button>
    </form>
    
    
    // this is where message displays
    <span class="displayMessage"></span>
    
    
    // this is my js
    $(document).ready(function () {     
      $('#submit').click(function () {
          var displayMessage = $('#message').val();
          localStorage.displayMessage = displayMessage;
      });
    
    });
    
      $(document).ready(function () {
      $('.displayMessage').html(localStorage.displayMessage);
    })
    

【问题讨论】:

  • @adeneo 说的是对的,但是要存储所有消息——不仅仅是最后一条——你可以试试this solution
  • 谢谢! 另外,我没有看到@adeneo 回答...
  • 他删除了。也许不是那么正确哈哈

标签: javascript jquery html ajax local-storage


【解决方案1】:
  1. 页面重新加载由默认按钮单击行为触发。您需要通过在事件对象上调用preventDefault 来禁用它:

    $('#submit').click(function (e) {
        e.preventDefault();
        // your code
    });
    
  2. 正如 DontVoteMeDown 已经说过的,您可以将对象或数组作为 JSON 存储在本地存储中。所以你可以这样做:

    $(document).ready(function () {     
        $('#submit').click(function (e) {
            e.preventDefault();
    
            var storedMessagesJSON = localStorage.displayMessages || '[]',
                storedMessages = JSON.parse(storedMessagesJSON),
                displayMessage = $('#message').val();
    
            storedMessages.push(displayMessage);
            localStorage.displayMessages = JSON.stringify(storedMessages);
        });
    
        var storedMessagesJSON = localStorage.displayMessages || '[]',
            storedMessages = JSON.parse(storedMessagesJSON);
        $('.displayMessage').html(storedMessages.join('<br>'));
    });
    

    我还发了JSFiddle

【讨论】:

  • 不错!谢谢你。现在我有两个问题需要解决:jsfiddle.net/WqDJv
    标签下推iphone,消息都在同一个css气泡中,而不是每次都创建一个新的。而且...清除按钮不起作用。
  • iPhone 图像被下推,因为它位于消息下方。您可以将消息设为position: absolute,这将防止它们包含其他内容。我不知道为什么没有正确触发清除按钮的单击事件。不过,您还应该使用 jQuery 将点击事件绑定到按钮。我更新了your fiddle
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-23
  • 2017-05-11
  • 2017-12-15
相关资源
最近更新 更多