2013-07-25 26 views
0

我想要做的是我添加了兩個按鈕,這是默認禁用。當我添加一個項目的按鈕將啓用一旦我點擊收據按鈕複選框選中應該走開在我的筆記本電腦,但沒有小提琴,也正在努力,如果我點擊收據應該在removeAttr檢查,以檢查框和按鈕應禁用,因爲沒有複選框checked..here是我的代碼JSFIDDLE禁用該按鈕,並取消複選框使用jquery

的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'); 



}); 
+2

_cool它正在fine_ - 究竟是什麼?似乎缺少背景。 – Barmar

+0

對不起,我試圖取消選中複選框並同時禁用按鈕時,我單擊收據按鈕... – krishyalla

+0

我只是在評論如何第一句話聽起來像對一個有效答案的迴應,而不是開始題。 – Barmar

回答

0

首先,不要對您的複選框使用相同的ID,個ID屬性在HTML頁面中應該是唯一的。如果要取消所有的複選框,然後你可以使用這個:

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

Demo fiddle

+0

我做了同樣的事情,但它不工作... – krishyalla

+0

@krishyalla檢查小提琴,它的工作原理 –

0

你不能有相同的ID多個元素,標識必須是唯一的。而不是id="item-id"你應該使用一個類,class="item-id"

並刪除複選標記,您應該使用removeProp('checked')而不是removeAttr('checked')。屬性指的是靜態DOM屬性,它僅用作輸入元素的初始設置,屬性是用戶可以對元素進行的動態更改。

0

由於您使用重複的HTML元素ID(它們應該是唯一的!)和jQuery .attr().removeAttr()您應該在哪裏使用.prop(),因此您在不同瀏覽器中遇到不同行爲。這將確保您的代碼在不同的瀏覽器中更可靠地工作。

刪除重複的ID。新代碼將不再引用它們。

,取消勾選所有的複選框,您可以使用一個簡單的選擇,如

$('#datatable :checkbox') 

$('#datatable :checkbox:checked') 

變化的JS代碼(working fiddle

$("#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); 
0

試試這個

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

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



}); 

FIDDLE Demo

相關問題