javascript - Bootstrap 3 单选按钮不返回值

标签 javascript jquery twitter-bootstrap-3

我正在努力使用 Twitter Bootstrap 3 单选按钮,我无法获取选中/选定元素的值。我是 Jquery 的新手,但我在这个网站上看到了很多如何处理单选按钮的帖子,但似乎没有一个可以与 Bootstrap 一起使用。

HTML

  <form id="FormFilters" >

 // First Group of Radio
<div id="Edu" class="btn-group" data-toggle="buttons">

<label class="btn btn-block btn-info-outline" >College <input  id="Col" name="Edu" type="radio" value="Col"  ></label>
<label class="btn btn-block btn-info-outline" >High School <input  id="Sch" name="Edu" type="radio" value="School"  ></label>

</div>

// Second Group 
<div id="Experience" class="btn-group" data-toggle="buttons">

 <label class="btn btn-block btn-info-outline" >Yes <input  id="Yes" name="Exp" type="radio" value="Yes"  ></label>
<label class="btn btn-block btn-info-outline" > No <input  id="No" name="Exp" type="radio" value="No"  ></label>

</div>
</form>

 ect.../// up to 4 groups of radio btns 

我尝试过:

onclick:Javascript:alert(this.value) 即使单击上面的任何元素也不会返回任何内容

var x = $("#FormFilters input[type='radio']:checked").val(); alert(x);不返回任何内容

var x = $('input[type=radio]:checked', '#Edu').val(); alert(x);

样式可能是问题吗? <label>标签或类?

有人能告诉你如何正确地检查表单检查的输入/事件并获取值吗?谢谢

最佳答案

让我们暂时忘记所有的框架,回到基本的 Javascript。给定一些单选按钮,说:

<input type="radio" name="color" value="red"/> Red
<input type="radio" name="color" value="blue"/> Blue
<input type="radio" name="color" value="green"/> Green
<input type="radio" name="color" value ="white"/> White
<br/>
<input type="radio" name="shape" value="cirlce"/> Circle
<input type="radio" name="shape" value="square"/> Square

您可以使用普通 Javascript 输出单击的单选按钮的值:

var radios = document.getElementsByTagName("input");

//attach a function
for(var i = 0; i < radios.length; i++){
    //only attach the function for type radio
    if(radios[i].type == "radio"){
       radios[i].onclick = function(){
           alert(getCheckedValues());
       }
    }
}

function getCheckedValues(){
    //muste be stored in an array
    var values = [];
    for(var x = 0; x < radios.length; x++){
        if(radios[x].type == "radio" && radios[x].checked){
           values.push(radios[x].value);
        }
    }
    return values;
}

JS fiddle : http://jsfiddle.net/LDEJ2/

这段代码中有一些非常基本的概念。第一个是从 DOM 中选择元素,我使用 document.getElementsByTagName 来检索所有输入。第二个概念是循环。现在我已经选择了 DOM 中的所有输入,我需要迭代每个输入并附加一个 eventhandler。当特定 DOM 元素上触发某个事件时,将执行事件处理程序。在这种情况下,当任何单选按钮上触发 click 事件时,我会执行另一个函数。

此函数循环遍历单选按钮,并将所有选中的单选按钮的值存储在一个数组中,然后发出警报。

关于javascript - Bootstrap 3 单选按钮不返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21403445/

相关文章:

javascript - 使用原型(prototype)偏移高度

Javascript拖动对象

javascript - ngrx效果中api调用后获取数据

jquery - 如何在 Bootstrap 中将这些图像居中?

javascript - 如何使用 Bootstrap 实现从一种模式到另一种模式的导航?

javascript - Socket.io 使用参数创建空间

jquery - 如何在使用 HTML、CSS 和 jQuery 单击时换出简单的 SVG 图标?

javascript - ajax后刷新页面

jquery - 单击事件未在 Bootstrap 单选按钮组内触发

css - 显示导航栏折叠按钮的最小宽度(浏览器)