2014-03-28 74 views
1

Javascript和我永遠不會是最好的朋友。使用onchange事件激活或選中複選框

我嘗試設置一個複選框,通過更改下拉列表中的元素進行檢查。

這是段

<select name="change_status_to" id="sel"> 
    <option>....</option> 
    <option>....</option> 
</select> 

<input type="checkbox" name="do_status_change" value="on"> 

我怎麼可以使用JavaScript與的onchange事件來設置的複選框選中狀態?

+0

做我的回答幫助呢? – jOshT

回答

0

您可以設置其屬性.checked

document.getElementById("do_status_change").checked = true; 
document.getElementById("do_status_change").checked = false; 

但是,你需要設置一個id; name屬性是不夠的。

> Example <

+0

使用以下代碼'function changeStatus(){document.getElementById(「do_status_change」)。checked = true;我得到了錯誤_Cannot set property'checked'null_ – user1286819

+0

嘗試http://jsfiddle.net/xpx3d/ – Kvothe

+0

對不起,我的錯誤我忘了複選框的id屬性。 – user1286819

0

這裏是爲什麼你應該朋友使用JavaScript的例子。

的jsfiddle - http://jsfiddle.net/juc7Q/1/

HTML

You're feeling toward Javascript 
<select name="friends" id="friends"> 
    <option value="love">I love JS</option> 
    <option value="weird">JS is weird</option> 
    <option value="misunderstood">Are we speaking the same language?</option> 
</select> 

<button id="selectWeird">Keep JS Weird</button> 
<div> 
    <input type="checkbox" id="we_friends"> - Friends? 
</div> 

的JavaScript

//Select this using js 
var list = document.getElementById('friends'); 
var cb = document.getElementById('we_friends'); 

//Add event when change happens 
list.onchange = function() { 
    var value = list.value; 
    if(value == 'love') { 
     alert('I knew you would come around'); 
     cb.setAttribute('checked', ''); 
    } else if(value == 'weird') { 
     alert('And I like being weird :-)!!'); 
     cb.removeAttribute('checked'); 
    } else { 
     alert('And you think I understand you?'); 
     cb.removeAttribute('checked'); 
    } 
} 

//Change to 'Weird' when I click on it 
var btn = document.getElementById('selectWeird'); 
btn.onclick = function() { 
    list.options.selectedIndex = 1; 
}