0

我正在使用 Jquery UI,目前正在尝试更改复选框上的文本(它们看起来像按钮)。出于某种原因,我无法使用切换方法在每个更改事件上更改文本。这是 html 在 IE 8 中的样子

    <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>

对我来说,标签似乎是我需要改变的,但我不知道如何得到它。

现在我在另一个 So 线程上找到了使用它:

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

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

        });

通过此设置,我可以在选中时将其从“打开”更改为“关闭”,但在取消选中时不会返回到“打开”。

有任何想法吗?

4

1 回答 1

4

试试这个:-

演示

   $("#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 个回调。

于 2013-05-08T17:44:10.490 回答