2016-08-21 2 views
1

こんにちは、私はどのボタンが選択されているかに応じてjavascript変数の値を変更しようとしています。たとえば、HTMLボタンの選択に応じてJS変数の値を変更しますか?

<button id="1" onclick="changeVal('val1')">b1</button> 
<button id="2" onclick="changeVal('val2')">b2</button> 

<script> 
var value; 
function changeVal(choice) { 
    if (choice == 'val1') { 
    value = 'number value 1' 
    } else if (choice == 'val2'){ 
    value ='number value 2' 
    } 
*etc for more buttons* 
} 
</script> 

可変値は後で使用されます。 問題の周りに頭を包むことはできません。まったく間違っているか近いとしていますが、そこにはあまり行きません。

編集: まだ問題がありますが、基本的にはその選択肢の値を返して、別の関数で呼び出すことができます。

<script> 
var value... 
function changeval... //Return choice value out 

function useValue() { 
    alert(choice) //Use choice value here 
} 

メモ無視構文はすぐに書きました。

+0

ここでの問題は正確ですか? 'value'変数はあなたが望む値に割り当てられていませんか? – biseibutsu

+0

@biseibutsuので、後で別の関数で変数を使用していますが、実行されていないようですが、上記のコードは正しいですか?もしそうなら、それは私の問題が私の他の機能であることを意味しますが、それはGISのオープンレイヤーに関連しているので、そこに投稿する必要があります。 – cmca

+0

あなたがこのコードを投稿したものからうまくいくはずですが、どこで動かないのか分からないので、私は確かに言えません。 – biseibutsu

答えて

1

上記のコードは、Webブラウザで完全に動作します。問題は、可変スコープという概念でなければなりません。または、関数内で変数valueを使用しています。

+0

遅れて申し訳ありませんが、まだ問題があります。基本的には、別の関数でその変数を使用したいのですが、javascriptが実行される方法は、ボタンが押されても未定義の値を保持します。 これはなんですか? – cmca

1

"choice"変数をグローバル変数に割り当てることを検討して、関数の外部からアクセスできるようにしてください。 サンプルスニペットは次のとおりです。

<button id="1" onclick="changeVal('val1')">b1</button> 
<button id="2" onclick="changeVal('val2')">b2</button> 
<button id="3" onclick="display()">Display Value</button> 
<script> 
    var value = ""; 
    var globalChoice =""; 
    function changeVal(choice) { 
     if (choice == 'val1') { 
      value = 'number value 1'; 
     } else if (choice == 'val2'){ 
      value ='number value 2'; 
     } 
     globalChoice = choice; 
    } 
    function display(){ 
     alert(globalChoice); 
    } 

</script> 
+0

すばやい返信をいただきありがとうございます – cmca

関連する問題