发生错误时,我需要删除一个复选框的“已检查”属性。
.removeAttr函数不起作用。任何的想法? :/
HTML
<div data-role="controlgroup" data-type="horizontal" data-mini="true" style="margin-left: auto; margin-right: auto; width: 100%; text-align: center;">
<input type="checkbox" id="captureImage" name="add_image" class="custom" />
<label for="captureImage" data-icon="checkbox">Image</label>
<input type="checkbox" id="captureAudio" name="add_audio" class="custom" />
<label for="captureAudio" data-icon="checkbox">Audio</label>
<input type="checkbox" id="captureVideo" name="add_video" class="custom" />
<label for="captureVideo" data-icon="checkbox">Video</label>
</div>
的Javascript
$("#captureImage").live("change", function() {
// $("#captureImage").prop('checked', false); // Here Work
if($("#captureImage:checked").val() !== undefined) {
navigator.device.capture.captureImage(function(mediaFiles) {
console.log("works");
}, function(exception) {
$("#captureImage").prop('checked', false); // Not Works Here
_callback.error(exception);
}, {limit: 1});
}
});
/*
$("#captureAudio").live("change", function() {
if($("#captureAudio:checked").val() !== undefined) {
navigator.device.capture.captureAudio(function(mediaFiles) {
console.log("audio");
}, function() {
$("#captureAudio").removeAttr('checked');
_callback.error;
}, {limit: 1});
}
});
$("#captureVideo").live("change", function() {
if($("#captureVideo:checked").val() !== undefined) {
navigator.device.capture.captureVideo(function(mediaFiles) {
console.log("video");
}, function(exception) {
$("#captureVideo").prop('checked', false);
_callback.error(exception);
}, {limit: 1});
}
});
*/
答案 0 :(得分:75)
...试
$("#captureAudio").prop('checked', false);
答案 1 :(得分:50)
这两项都应该有效:
$("#captureImage").prop('checked', false);
和/或
$("#captureImage").removeAttr('checked');
......你们可以一起尝试。
答案 2 :(得分:6)
请尝试检查
$('#captureImage').attr("checked",true).checkboxradio("refresh");
并取消选中
$('#captureImage').attr("checked",false).checkboxradio("refresh");
答案 3 :(得分:2)
尝试:
$("#captureAudio")[0].checked = false;
答案 4 :(得分:1)
您可以尝试$(this)
:
$("#captureAudio").live("change", function() {
if($(this).val() !== undefined) { /* IF THIS VALUE IS NOT UNDEFINED */
navigator.device.capture.captureAudio(function(mediaFiles) {
console.log("audio");
}, function() {
$(this).removeAttr('checked'); /* REMOVE checked ATTRIBUTE; */
/* YOU CAN USE `$(this).prop("checked", false);` ALSO */
_callback.error;
}, {limit: 1});
}
});
答案 5 :(得分:0)
尝试类似FIDDLE
的内容 try
{
navigator.device.capture.captureImage(function(mediaFiles) {
console.log("works");
});
}
catch(err)
{
alert('hi');
$("#captureImage").prop('checked', false);
}
答案 6 :(得分:0)
在for-each loop
,.removeAttr()
或checked
等布尔属性上使用selected
也会将相应的命名属性设置为readonly
。
因此删除了此选中的属性
false
答案 7 :(得分:0)
发生错误时,我将<context-param>
<param-name>keycloak.config.resolver</param-name>
<param-value>my.package.CustomKeycloakResolver</param-value>
</context-param>
的prop属性用于unchecked
。
您无需将remove属性用于未选中复选框。
checkbox
对我来说很好。希望它也对您有用。
答案 8 :(得分:-8)
抱歉,我用上面的代码解决了我的问题:
$("#captureImage").live("change", function() {
if($("#captureImage:checked").val() !== undefined) {
navigator.device.capture.captureImage(function(mediaFiles) {
console.log("works");
}, function(exception) {
$("#captureImage").removeAttr('checked').checkboxradio('refresh');
_callback.error(exception);
}, {});
}
});