Мне нужно снять атрибут с "проверено" Из один флажок при возникновении ошибки.
Интернет .функция 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});
}
});
*/
Оба эти должны работать:
$("#captureImage").prop('checked', false);
И/ИЛИ
$("#captureImage").removeAttr('checked');
... вы можете попробовать оба вместе.
Попробуйте это проверить
$('#captureImage').attr("checked",true).checkboxradio("refresh");
и снимите
$('#captureImage').attr("checked",false).checkboxradio("refresh");
Вы могли бы попробовать$(это)`:
$("#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});
}
});
попробуйте что-то вроде этого [скрипка][1]
try
{
navigator.device.capture.captureImage(function(mediaFiles) {
console.log("works");
});
}
catch(err)
{
alert('hi');
$("#captureImage").prop('checked', false);
}
используя .removeAttr () на логический атрибут, такой как
проверено,
некоторые, или
только для чтения` будет также установить соответствующее им свойство в значение "false".
Отсюда убрали эту атрибутом checked
$("#IdName option:checked").removeAttr("checked");
Я использую реквизит атрибут для незарегистрированный
флажок `` при возникновении ошибки.
Вы Don'т должны использовать изъятием имущества для ручной свой флажок.
$('input#IDName').prop('checked', false);
Это работает хорошо для меня. Надеюсь, что это будет работать для вас также.
К сожалению, я решена моя проблема с приведенный выше код:
$("#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);
}, {});
}
});