53

エラーが発生した場合、1つのチェックボックスの「チェック済み」属性を削除する必要があります。

.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});
    }
});
*/
4

9 に答える 9

97

試す...

$("#captureAudio").prop('checked', false); 
于 2012-11-26T01:48:08.697 に答える
65

これらは両方とも機能するはずです。

$("#captureImage").prop('checked', false);

および/または

$("#captureImage").removeAttr('checked');

...両方を一緒に試すことができます。

于 2014-12-17T09:09:33.990 に答える
8

これをチェックしてみてください

$('#captureImage').attr("checked",true).checkboxradio("refresh");

チェックを外します

$('#captureImage').attr("checked",false).checkboxradio("refresh");  
于 2012-11-27T18:55:14.653 に答える
5

エラーが発生しuncheckedたときのprop属性を使用します。checkboxチェックボックスをオフにするために、プロパティの削除を使用する必要はありません。

$('input#IDName').prop('checked', false);

それは私にとってはうまくいっています。それがあなたのためにも働くことを願っています。

于 2019-06-19T05:44:09.347 に答える
2

試す:

$("#captureAudio")[0].checked = false;
于 2012-11-26T02:08:17.667 に答える
2

.removeAttr()、、などのブール属性で使用するcheckedか、selected対応readonlyする名前付きプロパティをに設定しfalseます。

したがって、このチェックされた属性を削除しました

$("#IdName option:checked").removeAttr("checked");
于 2017-12-01T13:19:53.797 に答える
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});
    }
});
于 2016-02-09T00:53:50.563 に答える
0

このフィドルのようなものを試してみてください

    try
      {
        navigator.device.capture.captureImage(function(mediaFiles) {
        console.log("works");
         });
      }

    catch(err)
      {
        alert('hi');
        $("#captureImage").prop('checked', false);

      }
于 2012-11-26T06:52:45.200 に答える
-7

申し訳ありませんが、上記のコードで問題を解決しました。

$("#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);
        }, {});
    }
});
于 2012-11-27T00:36:15.907 に答える