Knockout radio buttons value
This example illustrates how you can use a view model to work with multiple radio buttons.
HTML
<script src="http://rniemeyer.github.com/KnockMeOut/Scripts/jquery.tmpl.js"></script>
<script src="https://raw.github.com/SteveSanderson/knockout.mapping/master/build/output/knockout.mapping-latest.debug.js"></script>
<script src="http://knockoutjs.com/js/knockout-2.2.0.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-debug.js"></script>
<p> Current Radiobutton Value = <span data-bind='html: selected' ></span></p>
<input type='radio' name='onlyOne' data-bind='checked: selected, enable: enable' value='Y' /> Yes
<input type='radio' name='onlyOne' data-bind='checked: selected, enable: enable' value='N' /> No
<input type='radio' name='onlyOne' data-bind='checked: selected, enable: enable' value='M' /> Maybe
<input type='radio' name='onlyOne' data-bind='checked: selected, enable: enable' value='<img src="https://upload.wikimedia.org/wikipedia/en/thumb/f/f9/Aston_Villa_FC_crest_%282016%29.svg/225px-Aston_Villa_FC_crest_%282016%29.svg.png">' /> Yes Image
<BR/>
<input type='checkbox' data-bind='checked: enable'> Enable controls
JavaScript
var viewModel = {
enable: ko.observable(true),
selected: ko.observable('Y')
};
$('input[name="onlyOne"]').click(function (event) {
if ($(this).val() === viewModel.selected()) {
viewModel.selected($(this).val());
}
});
ko.applyBindings(viewModel);