admin管理员组文章数量:1325538
Im struggling with Twitter Bootstrap 3 radio buttons, I am not able to get the value of checked/selected elements. I new to Jquery, but I have e accross many posts on this site how to handle radio buttons and none seems to work with 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
I tried :
onclick:Javascript:alert(this.value)
even clicking on any element above does not return anything
var x = $("#FormFilters input[type='radio']:checked").val();
alert(x);
Does not return anything
var x = $('input[type=radio]:checked', '#Edu').val(); alert(x);
Can the styling be the issue? the <label>
tags or class ?
Can someone tell how would you properly go through the form checked inputs / active and get the values ? thanks
Im struggling with Twitter Bootstrap 3 radio buttons, I am not able to get the value of checked/selected elements. I new to Jquery, but I have e accross many posts on this site how to handle radio buttons and none seems to work with 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
I tried :
onclick:Javascript:alert(this.value)
even clicking on any element above does not return anything
var x = $("#FormFilters input[type='radio']:checked").val();
alert(x);
Does not return anything
var x = $('input[type=radio]:checked', '#Edu').val(); alert(x);
Can the styling be the issue? the <label>
tags or class ?
Can someone tell how would you properly go through the form checked inputs / active and get the values ? thanks
Share Improve this question asked Jan 28, 2014 at 10:45 AwenaAwena 1,0225 gold badges20 silver badges43 bronze badges5 Answers
Reset to default 2Let's forget all of the frameworks for a moment and get back to basic Javascript. Given some radio buttons, say:
<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
You could output the value of the clicked radio buttons using vanilla Javascript using:
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/LDEJ2/
There are some very basic concepts at work in this code. The first is selecting the elements from the DOM
, which I have done using document.getElementsByTagName
to retrieve all inputs. The second concept is looping. So now that I have selected all inputs from the DOM, I need to iterate over each one and attach an eventhandler
. The eventhandler is executed when some event is fired on the specific DOM
elements. In this case when the click
event is fired on any radio button, I execute another function.
This function loops through the radio buttons and stores the value of all checked radio buttons in an array, which is then alerted.
Try this
$("input:radio").change(function(){
alert($(this).val());
});
Fiddle: http://jsfiddle/jPNTC/
It seems that the checked state of the input element is not changed when using bootstrap 3. This works for me, finding the input
element that is embedded in the active label.
$('label.active > input', '#Edu').val();
did you tried getElementById? This is what i'm using fir js because most of the times i'm working with php GET
Use this:
$('input[name=Edu]:checked').val();
Or more precisely only for this form-id:
$('input[name=Edu]:checked', '#FormFilters').val();
I've added a button to your form and created a fiddle to test for you: http://jsfiddle/7Z6uZ/
You also might fetch all selected checkboxes at once:
$("input[type=radio]:checked").each(function()
{
console.log($(this).attr('name'), $(this).val());
// add $(this).val() with $(this).attr('name') to your array here
});
Try it here: http://jsfiddle/7Z6uZ/1/
Maybe there is a bug .. see here: Bootstrap: Radio button value is not submitted if checked twice
本文标签: javascriptBootstrap 3 radio buttons not returning valueStack Overflow
版权声明:本文标题:javascript - Bootstrap 3 radio buttons not returning value - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742194161a2430766.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论