jQuery获取单选按钮的值而不刷新页面

时间:2011-02-10 17:32:20

标签: jquery asp.net

我在asp.net中有一组单选按钮(单个按钮)。这些按钮具有组名(如果重要)。我需要做的是,无论何时用户选择一个单选按钮,我都需要调用一些jQuery。当用户选择单选按钮时,我没有进行页面刷新,因此我需要在运行时完成此操作。我在asp.net中尝试了一个“CheckedChanged”事件并且无法触发它。我也尝试过:

if ($('input:radio').attr('checked') === true) {
                  var checked = $('input:radio:checked').val();
              }

然而,它仅在第一次加载页面时起作用,而不是在用户选择除默认值之外的其他内容时起作用。我该怎么做才能解决这个问题?

3 个答案:

答案 0 :(得分:1)

如果将其绑定到change event,则每次更改项目时都会触发

$("input:radio").change(function(eventObject){
    var checked = $(eventObject).val();
});

答案 1 :(得分:0)

如果您AutoPostBack="true"比任何时候用户选择单选按钮,页面都会回发(刷新)。

因此将其设置为false,并通过jquery处理change事件。

答案 2 :(得分:0)

尝试这样的事情:

<p>
  <input type="radio" name="myRadioButtonSet" id="myRadioButtonSet1" value="1" /><label for="myRadioButtonSet1">&nbsp;One</label><br/>
  <input type="radio" name="myRadioButtonSet" id="myRadioButtonSet2" value="2" /><label for="myRadioButtonSet2">&nbsp;Two</label><br/>
  <input type="radio" name="myRadioButtonSet" id="myRadioButtonSet3" value="3" /><label for="myRadioButtonSet3">&nbsp;Three</label><br/>
</p>
<script type="text/javascript">
  $(function(){
    var oldValue = $('input:radio[name=myRadioButtonSet]:checked') ;
    $('input:radio[name=myRadioButtonSet]').click(function(){
      var newValue = $('input:radio[name=myRadioButtonSet]:checked').val() ;
      alert( 'old value:'+oldValue + ' / ' + 'new value:'+newValue ) ;
      oldValue = newValue ;
      return ;
    }) ;
    return ;
  }) ;
</script>

每次点击单选按钮时都会发生click事件(即使值没有改变); change事件仅在值更改时触发。

闭包(方便地)oldValue变量仍在范围内,因此您可以跟踪状态变化。