不确定如何正确获取变量

时间:2012-04-23 15:02:51

标签: jquery variables

我试图在用户点击收音机时设置变量,然后点击第二个收音机并制作第二个变量。

然后我想合并这两个变量,并根据创建的变量通过ajax加载一些数据。为了测试它,我做了一个按钮,我可以单击以测试变量是否存在,但它没有显示,所以我假设我做的不对。

我非常感谢你的帮助,我对此非常陌生并且遇到了很多麻烦。

<script type="text/javascript">
  $(function(){
    $("input:radio[name=f_1]").click(function() {
      type = $(this).val();
    });

    $("input:radio[name=f_1a]").click(function() {
      prod = $(this).val();
    });

    var type, prod;
    var JobType = type + prod;
    $("#alertButton").click(function(){
      alert (JobType);
    });
  });
</script>

2 个答案:

答案 0 :(得分:0)

您可以使用以下代码:

$("input:radio").change(function() {

    var selected = $("input:radio:checked");

    if ( selected.length === 2 ) {
        var f = $("input[name='f']:checked").val();
        var z = $("input[name='z']:checked").val();           
        alert('we have values ['+z+f+']');
    }

});

在您的代码中,您在函数范围之外有变量声明,因此您无法获得所需的变量。

答案 1 :(得分:0)

您的变量仅在页面加载时加入(当它们为空时),因为它们不在函数内部。

将变量声明在顶部,并在实际有值时将变量的连接放在click函数中,并且它可以正常工作:

$(function(){
    var type="", prod="", JobType="";

    $("input:radio[name=f_1]").click(function() {
        type = $(this).val();
    });

    $("input:radio[name=f_1a]").click(function() {
        prod = $(this).val();
    });


    $("#alertButton").click(function(){
        JobType = type + prod;
        alert (JobType);
    });
});​

如果为变量赋予初始值no(“”),则可以避免“未定义”问题。

这是FIDDLE