3

ある関数から別の関数に値を取得したい。ハンドラーページに値を渡したい。しかし、その中で私は渡す値を取得できません..ここで私はコードを与えました。私を助けてください。たとえば、radio = MR&fname=johnの場合を想定します。

function getdata()
{
   alert('hi');
   var radio = document.getElementsByName("radiobuttonlist1");
   for (var i = 0; i < radio.length; i++)
   {
    if (radio[i].checked)
    alert(radio[i].value);
   }

   var fname=document.getElementById("Firstnametxt").value;
   alert(fname);
}

ここでは、これらすべての値を別の関数に取得したいと思います。これは私の別の関数です。

function sendinfo()
{
getdata();

 $(document).ready(function(){     

   var url="Handler.ashx?radio="+radio+"&fname="+fname+""; "here i want the values from above function"

  alert(url);
    $.getJSON(url,function(json)
    {
        $.each(json,function(i,weed)
        {



        });

    });

});

}

ありがとうございました 。助けて

4

3 に答える 3

9

これには 2 つの方法があります。

オプション1

これらの変数は、次のように両方の関数の外で定義できます。

var radio;
var fname;
getdata() {
    radio = document.getElementsByName("radiobuttonlist1");
    fname=document.getElementById("Firstnametxt").value;
    // VALUE UPDATED HERE
}
sendinfo() {
    // VARIABLE ACCESSIBLE HERE
}

そして、これらの変数の値が更新されるたびに、それらの変数が最初に定義されたスコープ (関数の外) で更新されます。

JavaScript 変数のスコープは、変数が含まれている中括弧{}とそのセット内の中括弧内にあります。JavaScript のスコープは、多くの場合、これらの中括弧を参照します{}if内部で変数を定義し、外部にアクセスできるステートメントを含む例外があります (条件が true であると仮定します)。

オプション 2

または、次のように、これらの変数をパラメーターとして 2 番目の関数に渡すことができます。sendinfo(radio, fname);

値を返すことで値を渡す

getdata()次のように、値を関数内のオブジェクト リテラルとして返すことができます。

getdata() {
    return {
        radio : document.getElementsByName("radiobuttonlist1"),
        fname : document.getElementById("Firstnametxt").value
    }
}

次に、これを行います:

sendinfo() {
    var data = getdata();
}

そして、次のような変数にアクセスしdata.radioますdata.fname

于 2012-11-08T05:00:16.087 に答える
2
var radio;
var fname;

function getdata()
{
   alert('hi');
   radio = document.getElementsByName("radiobuttonlist1");
   for (var i = 0; i < radio.length; i++)
   {
    if (radio[i].checked)
    alert(radio[i].value);
   }

   fname=document.getElementById("Firstnametxt").value;
   alert(fname);
}

function sendinfo()
{
    getdata();

     $(document).ready(function(){     

       var url="Handler.ashx?radio="+radio+"&fname="+fname+""; "here i want the values from above function"

      alert(url);
        $.getJSON(url,function(json)
        {
            $.each(json,function(i,weed)
            {



            });
        });
    });
}
于 2012-11-08T05:13:56.720 に答える
2

2 つの変数をグローバルに宣言し、最初の関数で必要な値に設定し、2 番目の関数でそれらにアクセスできます。

于 2012-11-08T05:01:46.627 に答える