Javascript 如何在重新加载时继续追加任何元素
我想知道如何使我在jQuery中附加的元素保持活动状态? 我有一个表单,当a的值改变时,一个元素追加。 但当出现错误时,它会重新加载页面并打印错误。 但是添加的元素在重新加载页面后会消失Javascript 如何在重新加载时继续追加任何元素,javascript,jquery,Javascript,Jquery,我想知道如何使我在jQuery中附加的元素保持活动状态? 我有一个表单,当a的值改变时,一个元素追加。 但当出现错误时,它会重新加载页面并打印错误。 但是添加的元素在重新加载页面后会消失 <form method="post" action="?action=comment"> <select id="tag" name="tag"> <option value="1">super</option> <
<form method="post" action="?action=comment">
<select id="tag" name="tag">
<option value="1">super</option>
<option value="2">super</option>
</select>
<span id="elem_added"></span>
<input type="submit" value="send" />
</form>
<script>
$("#tag").change(function(e){
option = $(this).val();
if (option == "1")
{
$("#elem_added").append("<input type='text' name='test' id='input_added' />");
}
});
</script>
超级的
超级的
$(“#标记”)。更改(功能(e){
option=$(this.val();
如果(选项==“1”)
{
$(“#添加元素”)。追加(“”);
}
});
有没有办法把它放在我的网页上
谢谢大家
ps:我不使用ajax,也不会使用HTTP。HTTP在设计上是一种无状态协议,您需要状态 为了解决这个问题,我们引入了 在重新加载页面并阅读之前存储它,如果有,请添加文本 假定 在离开之前
docCookies.setItem("wasloaded","true");
刷新后:
if(docCookies.getItem("wasloaded")){
//add text
};
在您的情况下,这将类似于:
if (option == "1" || docCookies.getItem("wasloaded")){
$("#elem_added").append("<input type='text' name='test' id='input_added' />");
docCookies.setItem("wasloaded",true);
}
if(选项==“1”| | docCookies.getItem(“wasload”)){
$(“#添加元素”)。追加(“”);
docCookies.setItem(“wasload”,true);
}
顺便说一句,我同意凯文的观点,阿贾克斯是这类事情的理想人选
更现代的方法是使用维护状态。如果不想使用ajax,可以使用cookies
将数据存储在cookie中,并在加载时重新加载它,因为您知道元素将是什么,而不是将其隐藏在标记中,只是根据您的条件显示它。在重新加载时,只需再次检查您的条件。IMHO是最好的方法
如果仍要追加元素,则需要将已追加元素(或表单上的html)的信息存储在localstorage或cookie中 你不能。您必须存储一个表明元素已添加的标志,然后检查所述标志并重新添加元素(服务器端或客户端不重要)。Ajax非常适合这种工作,这样您就不必重新添加元素或存储任何内容。根据您重新加载页面的方式,您可以在url末尾附加一些信息,并让页面读取这些信息以重新生成添加的内容。