0

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>

それで、それを私のページに保持するためのアイデアはありますか?

みんなありがとう!

ps: 私は ajax を使用しておらず、これからも使用しません

4

3 に答える 3

2

HTTP は設計上ステートレスなプロトコルであり、状態が必要です。

この問題を解決するために、Cookieが導入されました。

ページをリロードする前に保存して読み、そこにある場合はテキストを追加します。

MDNのシムを想定docCookies

移動する前に

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);
    }

ところで、私はケビンに同意します.AJAXはこの種のものに理想的です.

より現代的なアプローチは、document.localStorage状態を維持するために使用することです。

于 2013-05-29T15:12:44.497 に答える
0

要素が何であるかを知っているので、マークアップを非表示にせず、条件に基づいて表示するだけです。そして、リロード時に条件をもう一度確認してください。私見が最良のアプローチです。

それでも追加したい場合は、要素 (またはフォーム上の html) を追加したという情報を localstorage または cookie に保存する必要があります。

于 2013-05-29T15:15:18.533 に答える
-1

ajax を使用したくない場合は、Cookie を使用できますhttp://www.w3schools.com/js/js_cookies.asp

データを Cookie に保存し、読み込み時に再追加する

于 2013-05-29T15:14:24.663 に答える