-2

これは簡単なコードです -

$(document).ready(function() {       
        var genvalue="";    
    $("input:radio[name=gender]").click(function() {
    genvalue = $(this).val();
    alert (genvalue);
    }); 
alert (genvalue);   
     //genvalue = $('#gender').val();
//alert (genvalue);

value = $("#edu_det1").val();

more code.................goes ......

alert (genvalue)クリックイベントによる呼び出しでなくても警告する値が必要ですが、ラジオボタンが最初の警告によって警告される値をクリックすると、2番目の機能が正しい値を警告しません。私は空の値を与えます。

4

5 に答える 5

1

Javascript には関数スコープがあります。変数の有効期間は、それを囲む関数の実行に限定されます。

クリック関数内に新しい変数を作成します。代わりに、既存の変数に値を割り当てる必要があります。だからあなたは書く必要があります

var genvalue="";
$("input:radio[name=gender]").click(function() {
    /* omit the "var" to assign a value to the variable genvalue*/
    genvalue = $(this).val();
});
alert(genvalue) // alerts genvalue, in this case probably ""
                // because the alert gets called before the click-handler fired

それ以外の:

var genvalue="";
$("input:radio[name=gender]").click(function() {
    /* This creates a new variable which is only visible in the click-function */
    var genvalue = $(this).val();
});
alert(genvalue) // will always alert "" and never the value assigned to
                // the var inside your click handler function
于 2012-08-20T12:47:23.233 に答える
0

2 回目の呼び出しでは、ドキュメントが読み込まれたときに呼び出されるalertため、正しい値が得られません。

これは、コールバックがラジオ ボタンで呼び出される可能性がないため、変数が未定義になることを意味します。clickgenvalue

genvalueまた、関数内でvarキーワードを使用して宣言しました。これにより、その関数本体にスコープclickが設定され、コールバック関数の外部からアクセスできなくなります。

于 2012-08-20T12:43:39.193 に答える
0

ラジオ ボタンがクリックされたとき、およびドキュメントの準備完了イベントが発生するとすぐに、genvalue が警告されます。2番目が最初に起動され、トップで次のように宣言されているため、値はありません

var genvalue="";

どちらの方法でも正しい値を警告したい場合は、このフィドルを試してください

$(document).ready(function() {       
    var genvalue=$("input:radio[name=gender]").val();

     $("input:radio[name=gender]").click(function() {
      genvalue = $(this).val();
        alert (genvalue);
       });
     alert (genvalue);
 }); 
于 2012-08-20T12:46:35.053 に答える
0

genvalue 変数をドキュメント対応関数の外で使用できるようにする場合は、関数の外で定義します。

var genvalue="";
$(document).ready(function() {       
   $("input:radio[name=gender]").click(function() {
   genvalue = $(this).val();
   alert (genvalue);
});
alert (genvalue);   

また、変数を定義したら、再度 var を使用する必要はありません。

于 2012-08-20T12:41:12.847 に答える
0

genvalue は、関数var内で定義するため、関数の範囲外です。

var genvalue="";

$(document).ready(function() {       
    genvalue="";
    $("input:radio[name=gender]").click(function() {
        genvalue = $(this).val();
        alert (genvalue);
    }); 

alert (genvalue);   
//genvalue = $('#gender').val();
//alert (genvalue);

value = $("#edu_det1").val();
于 2012-08-20T12:41:12.830 に答える