mat*_*boy 7 javascript jquery icheck
我正在使用iCheck框架,我有两个输入
<input name="group" id="id1" type="radio" checked>
<input name="group" id="id2" type="radio">
<input name="group" id="id3" type="radio">
<input name="group" id="id4" type="radio">
Run Code Online (Sandbox Code Playgroud)
点击后我调用ajax函数.如果出现故障,我想将checked属性设置为先前选择的输入.
var currentChecked = $("input[name='group']:radio:checked");
$("input[name='group']:radio").each(function() {
$(this).on('ifChecked', function(){
$.ajax({
url: "/ajax/something/"
})
.done(function (data) {
currentChecked = $(this);
})
.fail(function (data) {
$(this).removeAttr('checked');
currentChecked.prop('checked', true);
});
});
});
Run Code Online (Sandbox Code Playgroud)
但这不会重置已选中的复选框.有什么我从iCheck框架中看不到的东西?有解决方案吗
Bin*_*Das 15
实际上,如果iCheck您需要更新iCheck以反映Jquery上的更改.
您可以使用更新 iCheck('update')
$(this).iCheck('update');
Run Code Online (Sandbox Code Playgroud)
使用jquery选中或取消选中单选按钮后.
另一种解决方案只是check或uncheck在iCheck用他的预定义功能.
<input name="group" id="id1" type="radio" checked>
Run Code Online (Sandbox Code Playgroud)
如果以上是您的单选按钮,您可以使用jquery部分中的代码,如下所示
$('#id1').iCheck('uncheck'); //To uncheck the radio button
$('#id1').iCheck('check'); //To check the radio button
Run Code Online (Sandbox Code Playgroud)
在这种情况下无需使用 iCheck('update')
jQuery iCheck 的工作方式与您期望的方式有些不同。
\n\n当您初始化复选框或单选按钮时,它会获取控件的状态/值并构建该状态的外观和感觉。就这些。然后它永远不会检查您的控制值或其属性的任何更新。
\n\n因此,在 Ajax 失败事件中取消选中复选框的唯一方法是使用插件公开的函数。
\n\n您应该在 ajax 失败事件中使用以下命令将状态更改回之前的状态
\n\n$(this).iCheck('toggle');\nRun Code Online (Sandbox Code Playgroud)\n\n或者您可以更改 html 属性并刷新控件,如下所示
\n\n$(this).removeAttr('checked');\ncurrentChecked.prop('checked', true);\n$(this).iCheck('update'); \xe2\x80\x94 apply input changes, which were done outside the plugin\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
14344 次 |
| 最近记录: |