设置变量时,在FORM中加载占位符标记

时间:2014-07-27 14:29:43

标签: javascript jquery html forms dom

我有一个用HTML5编写的简单用户设置表单,它将用户定义的设置提交到本地存储。

我希望如此,如果有人再次访问设置页面,并且定义了用户设置,则占位符和/或值会使用这些设置预填充表单。

我已尝试在结尾和开头使用window.load,document.ready,但是如果单击重新加载,我只能获取加载thre值的表单。如果访问该页面,我需要预先填写这些值。

以下是我的版本表格,如果你重新加载页面

,它会加载值

首先编写脚本

function loadUserSettings() {
    $("#full_name").attr("placeholder", db_user.full_name);
    $("#mobile_number").attr("placeholder", db_user.mobile_number);
    $("#email_address").attr("placeholder", db_user.email_address);

    $("#full_name").attr("value", db_user.full_name);
    $("#mobile_number").attr("value", db_user.mobile_number);
    $("#email_address").attr("value", db_user.email_address);
}

现在是表格

<body>

  <div data-role="page" data-control-title="Settings" data-theme="b" id="settings" class="global_page">
      <div data-theme="b" data-role="header" data-position="fixed" class="global_topbar">
          <a data-role="button" data-transition="flip" href="index.html" data-icon="back" data-iconpos="left" class="ui-btn-left global_button">
              Back
          </a>
          <a data-role="button" data-transition="flip" href="help_settings.html" data-icon="info" data-iconpos="left" class="ui-btn-right global_button">
              Help
          </a>
          <h3 class="global_header">
              Settings
          </h3>
      </div>
      <div data-role="content" style="padding: 1%">
          <form id="postSettings" action="" class="global_form">
              <div data-role="fieldcontain" data-controltype="textinput" class="full_name">
                  <label for="full_name">
                      Name
                  </label>
                  <input name="full_name" id="full_name" type="text" data-mini="true"/>
              </div>
              <div data-role="fieldcontain" data-controltype="textinput" class="email_address">
                  <label for="email_address">
                      Email Address
                  </label>
                  <input name="email_address" id="email_address" type="email" data-mini="true"/>
              </div>
              <div data-role="fieldcontain" data-controltype="textinput" class="global_text_input">
                  <label for="mobile_number">
                      Mobile Number
                  </label>
                  <input name="mobile_number" id="mobile_number" type="tel" data-mini="true"/>
              </div>
              <input id="store_posting" type="submit" data-icon="plus" data-iconpos="left" value="Store Information" class="global_button" onclick="dbGoUser()"/>
          </form>
      </div>
  </div>
</body>

<script language="JavaScript">
    document.ready = loadUserSettings();
</script>

我使用我附加到设置按钮的功能管理了一个解决方法,基本上是

function loadSettingsPage() {
    window.location.href = "settings.html";
}

并且每次预填充占位符/值都没有问题,但我使用的是“FLIP&#39;”的数据转换链接。使用上述功能丢失。

理想情况下,当我点击普通链接(我怀疑它只是一个不循环的页面刷新类型选项)或者让我的loadSettingsPage使用JQuery翻转过渡时,我想要修复占位符的注入。

提前感谢您的任何帮助。

1 个答案:

答案 0 :(得分:0)

好的,我能够解决一些自定义功能的问题。我不得不失去翻转效果,然后转向简单的淡入淡出,但我最终使用了

function fadeIn() {
    $("body").hide();
    $("body").fadeIn(500);
}

function loadPageSettings(urlvar) {
    $("body").fadeOut(500, function(){ window.location.href = urlvar; });
}

用于自定义函数

所有超链接都使用类似这样的

<a id="home_new_journey" data-role="button" onclick="loadPageSettings('journey_info.html')" data-icon="plus" data-iconpos="left" class="global_button">New Journey</a>

并且在我刚刚拥有的每个页面的页脚上

<script language="javascript">
    window.onload = fadeIn();
</script>

所以现在我的页面加载正确,所有动态内容都具有一致的淡化效果。