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

你可以通过两种方式做到这一点。

选项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您可以在其中定义变量和在外部访问的语句(假设条件为真)。

选项 2

或者您可以将这些变量作为参数传递给第二个函数,例如:sendinfo(radio, fname);

通过返回值来传递值

您可以在函数中将值作为对象文字返回,getdata()如下所示:

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

然后这样做:

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

然后访问这些变量,例如:data.radiodata.fname.

于 2012-11-08T05:00:16.087 回答
2

您可以全局声明两个变量,在第一个函数中将它们设置为您需要的值,然后在第二个函数中访问它们。

于 2012-11-08T05:01:46.627 回答
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 回答