diff --git a/js/jquery.mobile.forms.checkboxradio.js b/js/jquery.mobile.forms.checkboxradio.js index 61c2385a..1dacb908 100644 --- a/js/jquery.mobile.forms.checkboxradio.js +++ b/js/jquery.mobile.forms.checkboxradio.js @@ -58,13 +58,13 @@ $.widget( "mobile.checkboxradio", $.mobile.widget, { } self._cacheVals(); - - input.attr( "checked", inputtype === "radio" && true || !input.is( ":checked" ) ); + + input.prop( "checked", inputtype === "radio" && true || !(input.prop("checked")) ); // input set for common radio buttons will contain all the radio // buttons, but will not for checkboxes. clearing the checked status // of other radios ensures the active button state is applied properly - self._getInputSet().not(input).removeAttr('checked'); + self._getInputSet().not(input).prop('checked', false); self._updateAll(); return false; @@ -79,6 +79,13 @@ $.widget( "mobile.checkboxradio", $.mobile.widget, { }, vclick: function(){ + // adds checked attribute to checked input when keyboard is used + if ($(this).is(":checked")) { + $(this).prop( "checked", true); + self._getInputSet().not($(this)).prop('checked', false); + } else { + $(this).prop("checked", false); + } self._updateAll(); }, @@ -125,7 +132,7 @@ $.widget( "mobile.checkboxradio", $.mobile.widget, { // input[0].checked expando doesn't always report the proper value // for checked='checked' - if ( $(input[0]).attr('checked') ) { + if ( $(input[0]).prop('checked') ) { label.addClass( $.mobile.activeBtnClass ); icon.addClass( this.checkedicon ).removeClass( this.uncheckedicon );