问题
Basic radio box
<div class="adv_filter">
<li>
<input type="radio" name="letter_type" data-custom="Text" value="0"> Text</li>
</li>
<li>
<input type="radio" name="letter_type" data-custom="Text" value="0"> Text</li>
</li>
</div>
iCheck transformation
<!-- iCheck output format
<div class="adv_filter">
<li>
<div class="iradio_square-orange checked" aria-checked="true" aria-disabled="false" style="position: relative;"><input type="radio" name="letter_type" data-custom="Text" value="0" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; border: 0px; opacity: 0; background: rgb(255, 255, 255);"><ins class="iCheck-helper" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; border: 0px; opacity: 0; background: rgb(255, 255, 255);"></ins></div> Text</li>
<li>
<div class="iradio_square-orange" aria-checked="false" aria-disabled="false" style="position: relative;"><input type="radio" name="letter_type" data-custom="Text" value="0" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; border: 0px; opacity: 0; background: rgb(255, 255, 255);"><ins class="iCheck-helper" style="position: absolute; top: -20%; left: -20%; display: block; width: 140%; height: 140%; margin: 0px; padding: 0px; border: 0px; opacity: 0; background: rgb(255, 255, 255);"></ins></div> Text</li>
</div> -->
As you see the checked is attached to the div..
$(document).ready(function () {
$('input').iCheck({
checkboxClass: 'icheckbox_square-orange',
radioClass: 'iradio_square-orange',
increaseArea: '20%' // optional
});
$("li").on("click", "input", function () {
var val = $(this).val();
//updateDataGrid(val);
alert(val);
});
});
Question and description
Provided javascript code worked properly before adding the icheck plugin, I am wondering how to get the same result in the icheck plugin. Its simple, on radio click it stores the value in variable later its passed further to functions.
Live example : http://jsfiddle.net/9ypwjvt4/
iCheck : http://fronteed.com/iCheck/
回答1:
Attach a handler to ifChanged
event:
$('input').on('ifChecked', function(event){
alert($(this).val()); // alert value
});
There are 11 ways to listen for changes:
ifClicked
- user clicked on a customized input or an assigned labelifChanged
- input's checked, disabled or indeterminate state is changedifChecked
- input's state is changed to checkedifUnchecked
- checked state is removedifToggled
- input's checked state is changedifDisabled
-input's state is changed to disabledifEnabled
- disabled state is removedifIndeterminate
- input's state is changed to indeterminateifDeterminate
- indeterminate state is removedifCreatedinput
- is just customizedifDestroyed
- customization is just removed
JSFIDDLE
回答2:
Avoid using jquery as much as you can. You can also use code below;
$('input').on('ifChecked', function(event){
alert(event.target.value); // alert value
});
回答3:
Use this
// Check #x
$( "#x" ).prop( "checked", true );
// Uncheck #x
$( "#x" ).prop( "checked", false );
回答4:
$('body').on('ifChecked','.icheck', function(){
//considering icheck is the class of your checkbox and it is getting generated dynamically
});
来源:https://stackoverflow.com/questions/26441735/radio-box-get-the-checked-value-icheck