Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何回滚jquery按钮集_Jquery_Html_Ajax - Fatal编程技术网

如何回滚jquery按钮集

如何回滚jquery按钮集,jquery,html,ajax,Jquery,Html,Ajax,我有一个按钮集,带有一个更改事件。更改时,to事件调用ajax post来保存值。如果出现错误,我希望将buttonset设置回其初始状态 因此,我将初始状态保留在页面加载变量(inital)中。 如果ajax调用失败,在“error”函数中,我使用“initial”检查相应的按钮 问题是图形按钮集无法恢复到其初始值。 更糟糕的是,当我对这两个按钮发出警报时,我看到选中的属性设置正确,但没有反映在屏幕上 感谢您的帮助,因为我在谷歌上搜索了很多:-( JS代码: //keep initial bu

我有一个按钮集,带有一个更改事件。更改时,to事件调用ajax post来保存值。如果出现错误,我希望将buttonset设置回其初始状态

因此,我将初始状态保留在页面加载变量(inital)中。 如果ajax调用失败,在“error”函数中,我使用“initial”检查相应的按钮

问题是图形按钮集无法恢复到其初始值。 更糟糕的是,当我对这两个按钮发出警报时,我看到选中的属性设置正确,但没有反映在屏幕上

感谢您的帮助,因为我在谷歌上搜索了很多:-(

JS代码:

//keep initial buttonset checked value
var intial = $( '#radio :checked');

//on buttonset change, do a ajax post, and in case of failure, set original value back
$( "#radio" ).buttonset().change(function(){
    $.post("/to/somewhere",{showList:'show', id:123})
        .error(function(){
            if (intial.val() == "show"){
                $('#visibleYes').attr("checked", true);
            } 
            else {
                $('#visibleNo').attr("checked", true);
            }
        })                
    })
});
html代码

<div id="radio">
   <input class="yesNoRadio" type="radio" id="visibleYes" name="visible" value="show" checked="checked"/><label for="visibleYes">Show</label>
   <input class="yesNoRadio" type="radio" id="visibleNo"  name="visible" value="hide" /><label for="visibleNo">Hide</label>
</div>

显示
隐藏
在更新增强元素的
选中属性后,您应该启动按钮小部件:

$(intial.val() == "show" ? "#visibleYes" : "#visibleNo")
    .prop("checked", true).button("refresh");

请注意,我使用了而不是,建议使用布尔属性,如
checked

,正如您所知,您的JavaScript实际上是jQuery。@MattD,jQuery是JavaScript。它只是一个库,不是一种语言。@FrédéricHamidi我知道这一点,但如果他在写这篇文章时认为jQuery是JavaScript,那么他就不会引用它了如果不使用jQuery库,那么任何人为修复其代码所做的任何事情都不会起作用。可能应该在我的初始评论中注意到这一点。它起作用了…你救了我一天:-)我实际上是在用按钮集使劲玩,而我必须像你那样直接按按钮。谢谢lot@xavier如果这是您使用的解决方案,则应将其标记为已回答。