Allow checkboxes/radio buttons to be selected with keyboard - updated to use prop()

This commit is contained in:
Shana Golden 2011-05-27 09:50:54 -04:00
parent 4ca2fc5287
commit c9d97ef261

View file

@ -59,12 +59,12 @@ $.widget( "mobile.checkboxradio", $.mobile.widget, {
self._cacheVals();
input.attr( "checked", inputtype === "radio" && true || !(input.attr("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;
@ -81,10 +81,10 @@ $.widget( "mobile.checkboxradio", $.mobile.widget, {
vclick: function(){
// adds checked attribute to checked input when keyboard is used
if ($(this).is(":checked")) {
$(this).attr( "checked", true);
self._getInputSet().not($(this)).removeAttr('checked');
$(this).prop( "checked", true);
self._getInputSet().not($(this)).prop('checked', false);
} else {
$(this).removeAttr("checked");
$(this).prop("checked", false);
}
self._updateAll();
},
@ -132,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 );