2014-03-28 75 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; 
}