JS救援文本表格

时间:2014-10-14 20:24:07

标签: javascript forms submit

我正在使用它来拯救表单中的文本,以防用户在没有提交的情况下转到另一页面。但是,当用户按下提交按钮时,如何清除表单?

function rescuefieldvalues(idarray){
    for (var i=0; i<idarray.length; i++){
        var el=document.getElementById(idarray[i])
        if (!/(text)/.test(el.type)) //skip to next element if it isn't a input type="text" or textarea element
            continue
        if (el.addBehavior && !window.sessionStorage){ //use IE behaviors to store info?
            el.style.behavior='url(#default#userData)'
            el.load("userentereddata")
        }
        var persisteddata=(window.sessionStorage)? sessionStorage[idarray[i]+'data'] : (el.addBehavior)? el.getAttribute('dataattr') : null
        if (persisteddata) //if rescued data found for this element
            el.value=persisteddata
        el.onkeyup=function(){
            if (window.sessionStorage)
                sessionStorage[this.id+'data']=this.value
            else if (this.addBehavior){
                this.setAttribute("dataattr", this.value)
                this.save("userentereddata")
            }
        } //onkeyup
    } //for loop
}

<form>
<p>Name: <input type="text"/></p>
<p>Address*: <input type="text" id="address" style="width:200px;" /></p>
<p>Feedback*:<br />
<textarea id="feedback" style="width:300px;height:150px">Your feedback here</textarea><br 
/>
<input type="submit" /></p>


</form>

<script type="text/javascript">

rescuefieldvalues(['address', 'feedback']) //rescue data 

</script>

1 个答案:

答案 0 :(得分:0)

您正在设置键/值对:

sessionStorage[this.id+'data']=this.value

(这里只是注释,我更喜欢语法:sessionStorage.setItem(key, value))。

同样,您应该迭代已存储的密钥并使用以下方法清除它们:

sessionStorage.removeItem(key)

如果您没有要清除的密钥,则可以迭代sessionStorage属性,就像它是常规对象一样。

您还可以使用sessionStorage.clear()清除所有会话存储。

当然,您必须创建一个执行此操作并将其绑定到表单的submit事件的函数。