Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 停止要选中的复选框_Javascript_Checkbox - Fatal编程技术网

Javascript 停止要选中的复选框

Javascript 停止要选中的复选框,javascript,checkbox,Javascript,Checkbox,我正在研究JavaScript并测试一个我认为可以阻止复选框被选中的函数(): var myBox=document.getElementById('bike'); myBox.addEventListener('click',stopCheck,false); 功能停止检查(e){ e、 预防默认值(); } 我有一辆自行车 我有一辆车 但代码不起作用。可能在复选框更改选中状态后执行stopCheck。如何修复它? 您的脚本无法找到元素 只需在表单后/关闭bodytag之前移动脚本即可 可

我正在研究JavaScript并测试一个我认为可以阻止复选框被选中的函数():


var myBox=document.getElementById('bike');
myBox.addEventListener('click',stopCheck,false);
功能停止检查(e){
e、 预防默认值();
}
我有一辆自行车
我有一辆车
但代码不起作用。可能在复选框更改选中状态后执行stopCheck。如何修复它?

您的
脚本
无法找到元素


只需在表单后/关闭
body
tag之前移动脚本即可

可能是因为在使用document.getElementById时,Dom树尚未完全创建。 移动下面的脚本可能会有所帮助:

<form action="">
<input type="checkbox" name="vehicle" value="Bike" id="bike" >I have a bike<br>
<input type="checkbox" name="vehicle" value="Car">I have a car 
</form>
<script type="text/javascript" charset="utf-8">
var myBox = document.getElementById('bike');
myBox.addEventListener('click', stopCheck, false);

function stopCheck(e){
    e.preventDefault();
}
</script>

我有一辆自行车
我有一辆车
var myBox=document.getElementById('bike');
myBox.addEventListener('click',stopCheck,false);
功能停止检查(e){
e、 预防默认值();
}
使用返回带有名称的元素数组,在本例中为复选框

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>

<script>
    window.onload = function() {
       var vehicle = document.getElementsByName("vehicle");

        for(var i=0;i<vehicle.length;i++){
            vehicle[i].onclick = function(e) {
                e.preventDefault();
            };
        }



    };

</script>

<form action="">
    <input type="checkbox" name="vehicle" value="Bike" id="bike" >I have a bike<br>
    <input type="checkbox" name="vehicle" value="Car">I have a car
</form>
</body>
</html>

window.onload=函数(){
var vehicle=document.getElementsByName(“车辆”);

对于(var i=0;imaybe onmousedown而不是onclick?在实践中没有坏处,但在现实生活中,您只需在复选框中添加一个
禁用的
属性。@Juhana如果您不想让用户生气>:-}我确信95%的软件开发人员确实想让用户生气……我试图理解事件和事件冒泡,以及
preventDefault
函数的可能重复。他们的代码已经起作用了:做它想做的事-document.getElementById('bike')-你只会得到一个元素。
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>

<script>
    window.onload = function() {
       var vehicle = document.getElementsByName("vehicle");

        for(var i=0;i<vehicle.length;i++){
            vehicle[i].onclick = function(e) {
                e.preventDefault();
            };
        }



    };

</script>

<form action="">
    <input type="checkbox" name="vehicle" value="Bike" id="bike" >I have a bike<br>
    <input type="checkbox" name="vehicle" value="Car">I have a car
</form>
</body>
</html>