0

私がやろうとしているのは、デフォルトで無効になっている2つのボタンを追加したことです。アイテムを追加すると、レシートボタンをクリックするとボタンが有効になり、チェックボックスがオフになり、ラップトップでは機能しますが、フィドルでは機能しません。領収書をクリックすると、removeAttrがチェックボックスにチェックされ、チェックボックスがチェックされていないためボタンが無効になるはずです..ここに私のコードJSFIDDLEがあります

Javascript:

// json data object
var data = JSON.parse('{ "122233334444": ["Book","Three Musketters","DE7598490587","7584092043857", "03/18/13 11:17:51 AM","03/18/13 11:17:51 AM", "1" ], "122223355552":["eBook","Fall Colors","XYZ29494949","7584092043857", "03/18/13 11:17:51 AM","03/18/13 11:17:51 AM", "2" ], "122223355533":["eBook","Snowfall","XYZ29494949","7584092043857", "03/18/13 11:17:51 AM","03/18/13 11:17:51 AM", "3" ] }');
$("#submitid").click(function () {
    $('#resend').removeAttr('disabled');
    $('#receipt').removeAttr('disabled');
    var rowId = $("#number").val();
    $("#number").val("");
    var rowData = data[rowId];
    if (rowData) {

        var tr = $("<tr><td><input id='item-id' type='checkbox' checked/></td></tr>").attr("id", "datatable-row-" + rowId);
        for (var col = 0; col < rowData.length; col++)
        tr.append($("<td></td>").text(rowData[col]));
        $("#datatable").prepend(tr);
        $("#datatable").show();
    } else {
        alert("Row doesn't exist in json object: " + rowId);
    }
});
$('#receipt').click(function () {
    $('#item-id').removeAttr('checked');

    $('#resend').attr('disabled');
    $('#receipt').attr('disabled');



});
4

4 に答える 4

0

同じ ID を持つ要素を複数持つことはできません。ID は一意である必要があります。代わりにid="item-id"、クラスを使用する必要がありますclass="item-id"

また、チェックマークを外すにはremoveProp('checked')、 ではなくを使用する必要がありますremoveAttr('checked')。属性は、入力要素の初期設定としてのみ使用される静的な DOM 属性を参照します。プロパティは、ユーザーが要素に加えることができる動的な変更です。

于 2013-07-25T17:46:17.727 に答える
0

まず、チェックボックスに同じ id を使用しないでください。id 属性は HTML ページ内で一意である必要があります。すべてのチェックボックスをオフにしたい場合は、これを使用できます。

$('#receipt').click(function(){
    $(':checked').removeAttr('checked');
    $('#resend, #receipt').attr('disabled','disabled');
});

デモフィドル

于 2013-07-25T17:44:29.830 に答える
0

重複した HTML 要素 ID (一意である必要があります) と jQuery.attr().removeAttr()使用していて、使用すべき場所が.prop(). これにより、コードがさまざまなブラウザーでより確実に機能するようになります。

重複する ID を削除します。新しいコードはそれらを参照しなくなります。

チェックされているすべてのチェックボックスをオフにするには、次のような単純なセレクターを使用できます。

$('#datatable :checkbox')

また

$('#datatable :checkbox:checked')

JS コードへの変更 (作業フィドル)

$("#submitid").click(function () {
    $('#resend').prop('disabled', false);
    $('#receipt').prop('disabled', false);

$('#receipt').click(function(){
    $('#datatable :checkbox:checked').prop('checked', false);
    $('#resend').prop('disabled', true);
    $('#receipt').prop('disabled', true);
于 2013-07-25T17:47:12.997 に答える
0

これを試して

$('#receipt').on("click",function(){
    $(':checked').removeAttr('checked');

    $('#resend').attr('disabled','disabled');
    $('#receipt').attr('disabled','disabled');



});

フィドルデモ

于 2013-07-25T17:47:38.390 に答える