jQuery:Radio .change函数,奇怪的bug

时间:2013-04-26 16:46:51

标签: javascript jquery

我试图在触发.change事件后获取所选无线电的值。我需要使用外部函数来执行此操作,但我似乎无法获得正确的值。

HTML:

<input type="radio" name="myradio" value="1.0"> 1.0
<input type="radio" name="myradio" value="2.0"> 2.0

jQuery的:

$("input[type='radio'][name='myradio']").change(function() {

    //SHOWING GOOD VALUE
    radio_value = parseFloat($(this).val());
    alert(radio_value);

    TEST();

}

function TEST(){

    //SHOWING WRONG VALUE
    radio_value = parseFloat($("input[type='radio'][name='myradio']:checked").val());
    alert(radio_value); 

}

例如,如果我单击收音机1.0,我点击收音机2.0,上面的jquery代码将输出2.0作为第一个警报,1.0输出为第二个警报。 TEST()函数输出旧值,好像无线电事件尚未发生。

我需要找到一种方法来在TEST()函数中获得良好的无线电值,而无需向其传输任何参数。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

TEST()函数中尝试此操作:

var radio_value = parseFloat($("input[type='radio'][name='myradio']").val());

由于它们具有相同的名称,您不必担心使用:checked,虽然我不确定为什么,但似乎可能是导致什么你看到了。

ps:你真的意味着在这些函数中设置全局radio_value变量吗?我假设“不”并以var声明作为前缀。