60750


下記のような処理で、A,B,Cを選択できるラジオボタンを作成し、操作されたらonchangeでjavascriptを呼び出しています。

**HTML**

[code]

    <div class="buttons" onchange="calc()">
        <input type="radio" name="item" value="A">A
        <input type="radio" name="item" value="B">B
        <input type="radio" name="item" value="C">C
    </div>
    
[/code]

**JavaScript**

[code]

    switch (document.form1.item.value) {
        case 'A': price=10; break;
        case 'B': price=20; break;
        case 'C': price=30; break;
    }
    
[/code]

ページ作成依頼者より「一度Cが選択された後、AまたはBに戻された時だけメッセージを表示してほしい」と言われ、悩んでいます。

イメージとしては、jsでラジオボタンの位置を保持しておき、その値を参照して処理しようと思っていますが、うまくいきません。

jsのこの処理の後に **temp_price** に値を保存し、この処理の前でその値を参照して処理しようと

[code]

       if ( temp_price == 30 ){ /*ここに前回Cが選択されていた時の処理を記述*/ }
    　 switch (document.form1.item.value) {
            case 'A': price=10; break;
            case 'B': price=20; break;
            case 'C': price=30; break;
        }
    　　temp_price = price;
    
[/code]

こんな感じにすれば実現できるかと思ったのですがうまくいきません。  
デベロッパーツールで確認すると、「if～」の行の時点で **temp_price**
が常にundefinedになってしまいます。（初回実行時にundefinedなのは想定していましたが、２回目以降は10,20,30のいずれかが入ってくるつもりでコーディングしました）

JavaScriptで、「前回実行時の変数の値を取得する方法」あるいは「複数回呼び出されても、変数を初期化させない方法」などありましたら、ご教示お願いいたします。


CC BY-SA 4.0
2019-11-21T17:35:53.807
60744
2019-11-22T02:07:00.760
2019-11-22T01:11:31.673
3060
36739
question
javascript html
html+javascriptで、前回実行時の変数の値を取得する方法や、変数値を初期化させない方法があれば教えてください


JSのグローバル変数を利用すれば行けそうです。

[code]

    <html>
    <head>
    <script type="text/javascript">
    var objValue;
    objValue="";
    function ValueChange(obj)
    {
        if(objValue=="C"){
            alert("sssssssss");
        }
    
        objValue= obj.value;
    }
    </script>
    </head>
    <body>
    <form id="form1">
    
    <div class="buttons" onchange="calc()">
        <input type="radio" name="item" onchange="ValueChange(this);" value="A">A
        <input type="radio" name="item" onchange="ValueChange(this);" value="B">B
        <input type="radio" id="CCC" name="item" onchange="ValueChange(this);" value="C">C
    </div>
    </form>
    </body>
    </html>
    
[/code]


CC BY-SA 4.0
2019-11-22T02:01:56.977
60750
2019-11-22T02:07:00.760
2019-11-22T02:07:00.760
35385
35385
60744
answer