我在写一个编辑函数(纯javascript&;HTML/Chrome/Windows10)。
数据作为一系列记录在localStorage中,下面提到的玩具代码中只有2条记录。
我希望用户指定要编辑的记录的编号,然后代码应该用检索到的该记录的内容预先填充textarea字段。 我希望允许用户进行更改,然后按Store按钮将其存储回LocalStorage中。
我的问题是,当我预填充输入字段时,我简短地看到记录内容,然后输入字段清除。 我试过。value和。defaultvalue
editfield.value=localstorage.getItem('jnl'+locStoreNo).replace(/(.*?)`\d*?`/,“$1”);
和
editField.defaultValue=localStorage.getItem('jnl'+locStoreNo).replace(/(.*?)`\d*?`/,“$1”);
结果是一样的。 (正则表达式用于隐藏序列号)
代码在这里的JSFiddle中:https://JSFiddle.net/roygrubb/zxedbfqr/2/
它的表现或多或少是相同的--它简单地显示了值--但是它做了一些不同的事情:它转到一个404。 这个我也不明白'_()_/'
我试图做的事情看起来是如此的基础,以至于我想我一定是遗漏了一些非常明显的东西。
我错过了什么? 谢啦!
每当您得到一个想要通过JavaScript处理的时,必须确保默认的表单提交操作不会发生。 如果
没有“action”属性,则默认为重新加载当前页。
默认情况下,将假定元素的类型为“submit”。 因此,要防止表单提交,最简单的做法是使按钮具有“button”作为其类型。
这可能不是您需要做的全部,具体取决于表单的详细信息。 为表单上的“Submit”事件设置一个处理程序以防止默认操作可能是必要的(或者简单地说是一个很好的防御动作)。