我一直在努力解决影响 jQtransform 的错误:
当您单击与复选框关联的标签时,它会“直观地”选中该框,但在提交表单时,它不会被发送。(所以它只检查 jqTransform 层而不是真正的复选框)
- 给定与收音机相同的场景->它可以工作
在复选框上单击直接 - >它有效
$.fn.jqTransCheckBox = function(){ return this.each(function(){ if($(this).hasClass('jqTransformHidden')) {return;} var $input = $(this); var inputSelf = this; //set the click on the label oLabel = jqTransformGetLabel($input); oLabel && oLabel.click(function(){aLink.trigger('click');}); // -> Bug here ? var aLink = $('<a href="#" class="jqTransformCheckbox"></a>'); //wrap and add the link $input.addClass('jqTransformHidden').wrap('<span class="jqTransformCheckboxWrapper"></span>').parent().prepend(aLink); //on change, change the class of the link $input.change(function(){ inputSelf.checked && aLink.addClass('jqTransformChecked') || aLink.removeClass('jqTransformChecked'); return true; }); // Click Handler, trigger the click and change event on the input aLink.click(function(){ //do nothing if the original input is disabled if($input.attr('disabled')){return false;} //trigger the envents on the input object $(this).toggleClass('jqTransformChecked'); $input.trigger('click').trigger("change"); return false; }); // set the default state this.checked && aLink.addClass('jqTransformChecked'); });
};
谢谢