使用jQuery UI Modal Form永久更改HTML文本

时间:2013-10-16 13:54:00

标签: javascript jquery html jquery-ui

我在HTML页面上有几个表,我需要使用jQuery UI模式表格使<td>标签内的内容可编辑,这意味着使用jQuery UI模式表单应该能够< b>永久编辑内容。

例如:

HTML:

<table>
  <tr>
    <td id="name">John Doe</td>
    <td id="number">999 999 9999</td>
  </tr>
</table>

<button id="edit">Edit</button>

模态表格:

<div id="edit-form" title="Edit Info">
  <form>
    <fieldset>
      <legend>Contact Info</legend>
      <table>
        <tr>
          <td>Name</td>
          <td><input type="text" name="cName" id="cName" /></td>
        </tr>
        <tr>
          <td>Number</td>
          <td><input type="text" name="cNumber" id="cNumber" /></td>
        </tr>
      </table>
    </fieldset>
  </form>
</div>

的Javascript / jQuery的

<script type="text/javascript">

$(function () {
    var name = $("#cName"),
        number = $("#cNumber");

    $("#edit")
        .button()
        .click(function () {
            $("#edit-form").dialog("open");

    $("#edit-form").dialog({
        autoOpen: false,
        height: 'auto',
        width: 'auto',
        modal: true,
        buttons: {
            "Apply": function () {
                document.getElementById('name').innerHTML = name.val();
                document.getElementById('number').innerHTML = number.val();
                $(this).dialog("close");
            },
            Cancel: function () { $(this).dialog("close"); }
        }
    });
});

</script>

但是,这只会暂时更改HTML文本 。如果我重新加载页面,旧文本又回来了。

如何实现这一点,以便新文本替换旧文本(即写入文件)?任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:2)

您无法从javascript更改html文件。即使它在同一台计算机上,您使用的是file:// schema。您需要将数据存储在数据库中,并动态显示html。

答案 1 :(得分:0)

另一种解决方案是将修改后的数据存储到cookie中,并在加载页面时读取其内容。因此,您将数据存储在JS方创建和管理的cookie中。

链接:https://developer.mozilla.org/en-US/docs/Web/API/document.cookie

但是,建议不要使用cookie。最佳做法是按照每个人之前建议的方式将数据存储在数据库中。