2013-05-08 61 views
0

我正在使用Jquery UI并且正在尝试更改复选框上的文本(它们看起来像按钮)。出于某种原因,我无法使用切换方法在每个更改事件上更改文本。这里是什么HTML是走出这样在IE 8Jquery UI复选框作为按钮更改文本值

<div data-hands-jqui-type='buttonset' data-hands-jqui-props='{"buttonWidth":0,"disabled":false,"handsOnCreate":null}' class='editor-field ui-widget'> 
     <label for="IsClosedSunday">Open</label> 
     <input data-hands-jqui-props="{}" data-hands-jqui-type="checkfield" data-hands-onchange="Vendor.IsClosedSelected" data-val="true" data-val-required="The Open field is required." id="IsClosedSunday" name="IsClosedSunday" type="checkbox" value="true" /> 
     <input name="IsClosedSunday" type="hidden" value="false" /> 
    </div> 

对我来说,它看起来像标签是什么,我需要改变,但我无法弄清楚如何得到它。

现在我发现了另一个线程所以使用此:

$("#IsClosedSunday").button().toggle(function() { 

     $(this).button('option', 'label', 'Open'); 
    }, 
     function() { 
      $(this).button('option', 'label', 'Closed'); 

     }); 

有了这个设置,我得到检查时,从“打开”到“封闭”的变化,但它不回去到'打开'取消选中。

任何想法?

回答

4

试试这个: -

Demo

$("#IsClosedSunday").button().click(function() { 
    var text = $(this).is(':checked')? "Closed": "Open" 
     $(this).button('option', 'label', text); 
    }); 

您可以使用过多事件change

$("#IsClosedSunday").button().change(function() { 
    var text = $(this).is(':checked')? "Closed": "Open" 
     $(this).button('option', 'label', text); 
    }); 

.toggle()

在你的代码使用toggle()它不是在按钮上(而不是复选框)的事件。当您最初致电.toggle()时,它只是强制按钮的切换状态。当您检查或更改复选框时它不会被触发。你应该使用changeclick事件。另外我认为切换不支持2个回叫。

+1

非常感谢。我曾见过类似的东西,但想用切换。我们实际上使用的是onchange事件,它只是使用我们正在使用的定制小部件“data-hands-onchange =”Vendor.IsClosedSelected“。我认为问题出在你说的关于第一次运行的切换。到底发生了什么......再次感谢先生!! – gcoleman0828 2013-05-08 19:24:07

+0

没有问题..很高兴它帮助了你...... :) – PSL 2013-05-08 19:25:00