2013-08-01 42 views
1

爲了清楚起見,假設我有一個複選框,我想要使用兩個按鈕來選中並取消選中。jquery設置並刪除選中的屬性不起作用,javascript確實爲

我可以使用基本的javascript檢查/取消選中框,但使用jquery,只要我刪除屬性,我不能設置它...任何想法爲什麼?

我創建了一個基本fiffle來說明:

http://jsfiddle.net/2K244/

<button id='button1'>check</button> 
<button id='button2'>uncheck</button> 
<input type="checkbox" id="myBox1" value="polo" /> 
<br/> 
<button id='button3'>check</button> 
<button id='button4'>uncheck</button> 
<input type="checkbox" id="myBox2" value="polo" /> 
<br/> 

$(document).ready(function() { 
    $('#button1').click(function() { 
     $('#myBox1').attr('checked','checked'); 
    }); 
    $('#button2').click(function() { 
     $('#myBox1').removeAttr('checked'); 
    }); 
    $('#button3').click(function() { 
     document.getElementById('myBox2').checked = true; 
    }); 
    $('#button4').click(function() { 
     document.getElementById('myBox2').checked = false; 
    }); 

}); 
+1

這是一個屬性不是一個屬性 –

回答

6

您應該使用.prop()代替。從jQuery的文檔.attr()

從jQuery 1.6開始,對於尚未設置的屬性,.attr()方法返回undefined。要檢索和更改表單元素的選中,選中或禁用狀態等DOM屬性,請使用.prop()方法。

2

您現在應該使用.prop()

http://jsfiddle.net/2K244/1/

$('#button1').click(function() { 
    $('#myBox1').prop('checked',true); 
}); 
$('#button2').click(function() { 
    $('#myBox1').prop('checked', false); 
}); 
$('#button3').click(function() { 
    $('#myBox2').prop('checked', true); 
}); 
$('#button4').click(function() { 
    $('#myBox2').prop('checked', false); 
}); 
+0

這不是一個答案,他問的問題。 –

0

要取消選中一個框,請使用prop函數。 $('#myBox1').prop('checked', false);不會對false

0

報價我不明白爲什麼你不工作,但使用此:

$("#myBox1").prop("checked",true); 

$("#myBox1").prop("checked",false); 

確保有一個最近的jQuery的版本。

0

檢查狀態的狀態可以使用true ||修改。 false方法.prop()中的第二個參數。

$('#btn_checked').on('click', function() { 
    $('#myBox1').prop('checked', true); 
}); 

$('#btn_unchecked').on('click', function() { 
    $('#myBox1').prop('checked', false); 
}); 

jsFiddle

相關問題