2

我知道这有很多主题,但不幸的是,我找不到有效的解决方案。所以这是我的问题。

我有一个流星模板,其中包含以下按钮组:

<template name="test">
 <form class="form-horizontal" id="search_form">
 <fieldset>
  <div class="form-actions">

    <div class="btn-group" data-toggle="buttons-radio" id="my_radiogroup">
      <button type="radio" class="btn my_button" name="knop" value="1">OR</button>
      <button type="radio" class="btn my_button" name="knop" value="2">AND</button>
    </div>

   </div>
  </fieldset>
 </form>
</template>

现在我想获取所选单选按钮(OR 或 AND)的值。因此,我尝试了以下解决方案,基于我在网上和 Stack 上可以找到的内容:

第一个解决方案:

Template.test.events({
 'click #my_radiogroup' : function(e,t) {
 var element = t.find('button:radio[name=knop]:checked'); 
 alert($(element).val());
}
});

第二种解决方案(基于来自 twitter bootstrap 的活动类):

Template.test.events({
 'click #my_radiogroup' : function(e,t) {
 var element = t.find("#my_button.active").value;
 alert(element);
}
});

我已经在我的模板中尝试了第三种解决方案:

<input type="hidden" id="alignment" value="" />  
<div class="btn-group alignment" data-toggle="buttons-radio">
 <button type="button" class="btn">OR</button>
 <button type="button" class="btn">AND</button>
</div>

并在我的 *.js 文件中使用此代码:

Template.test.events({
 'click #alignment.btn' : function(e,t) {
 var element = val(this.text());
 alert(element);
 return false;
}
});

但是,这些解决方案都不起作用。谁想要我如何获得所选单选按钮的值?

谢谢。

4

2 回答 2

2

在您的最后一个示例中,您尝试使用不存在的 id #alignment 和 .btn 类来定位一个元素。

另外我不知道你从哪里得到“t”,因为只有一个事件映射被传递给事件(“e”)。

此代码应该可以工作(尽管未经测试)。

Template.test.events({
  'click .btn' : function(e) {
    var clickedButton = e.currentTarget;
    alert( $(clickedButton).val() );
  }
});
于 2013-08-07T11:56:55.747 回答
1

你可以试试这个。。

alert($('.btn-group > .btn.active').attr("value"));
于 2014-03-01T12:30:04.227 回答