Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在重新加载时继续追加任何元素_Javascript_Jquery - Fatal编程技术网

Javascript 如何在重新加载时继续追加任何元素

Javascript 如何在重新加载时继续追加任何元素,javascript,jquery,Javascript,Jquery,我想知道如何使我在jQuery中附加的元素保持活动状态? 我有一个表单,当a的值改变时,一个元素追加。 但当出现错误时,它会重新加载页面并打印错误。 但是添加的元素在重新加载页面后会消失 <form method="post" action="?action=comment"> <select id="tag" name="tag"> <option value="1">super</option> <

我想知道如何使我在jQuery中附加的元素保持活动状态? 我有一个表单,当a的值改变时,一个元素追加。 但当出现错误时,它会重新加载页面并打印错误。 但是添加的元素在重新加载页面后会消失

<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末尾附加一些信息,并让页面读取这些信息以重新生成添加的内容。