Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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_Using_Status - Fatal编程技术网

使用javascript获取复选框状态

使用javascript获取复选框状态,javascript,checkbox,using,status,Javascript,Checkbox,Using,Status,这是我的复选框HTML代码 <input id="termsCheckbox" name="termsCheckbox" type="checkbox" value="terms" <?PHP echo $terms; ?> class="checkbox"> 我想检查复选框是否选中,如果未选中,请向terms\u div添加一个类。请帮助我解决此问题。谢谢只需将onchange处理程序绑定到您的复选框 $("#termsCheckbox").change(functi

这是我的复选框HTML代码

<input id="termsCheckbox" name="termsCheckbox" type="checkbox" value="terms" <?PHP echo $terms; ?> class="checkbox">

我想检查复选框是否选中,如果未选中,请向terms\u div添加一个类。请帮助我解决此问题。谢谢

只需将onchange处理程序绑定到您的复选框

$("#termsCheckbox").change(function() {

    // class will be removed if checked="checked"
    // otherwise will be added
    $(this).toggleClass("terms_error", !this.checked);
}).change(); // set initial state

尝试在复选框标记上添加
onclick=“validateTerms();”
您需要访问
className
变量(纯JS)。以下假设您的
div
的ID为
terms\u div
,并且
terms\u error
是您在
div
上可能需要的唯一类,您可以使用
onClick=“validateTerms();”

if(document.form.termsCheckbox.checked==true)
alert('check box is cheked')
(单击“术语Div”文本进行测试)

我没有看到用jQuery标记的问题,但我注意到使用了jQery选择器。。为了安全起见,我还是用纯JS做了

纯JS

var terms = document.getElementById("termsCheckbox"),
    terms_div = document.getElementById("terms_div");

function validateTerms(){
    if(terms.checked == false){
        if(terms_div.className.indexOf("terms_error")<0){
            terms_div.className += " terms_error";
        }
        return false;
    }else{      
        terms_div.className = terms_div.className.replace(/\bterms_error\b/,'');
        return true;
    }
}
var terms=document.getElementById(“termsCheckbox”),
terms_div=document.getElementById(“terms_div”);
函数validateTerms(){
if(terms.checked==false){

if(terms\u div.className.indexOf(“terms\u错误”)呵呵,我们的非常接近。唯一需要注意的是,如果碰巧有任何其他类分配给元素,它会将它们清除。我只对这个代码做了一次更改
d.className='terms\u error';
否则,当我双击提交按钮时,会添加另一个“terms\u error”。谢谢在这种情况下,此元素中没有任何其他类。But+=将添加两次相同的类。很好的一点是,Sassi,
+=
应该是
=
,尽管双击应该会得到选中/取消选中,这样类名就不会弄乱(追加一次,然后清除)。它应该是(“#terms_div”)而不是(this),否则就是这样。在
验证程序中
如何检查事件的原因是
检查
还是
取消选中
function validateTerms(){
  var c=document.getElementById('termsCheckbox');
  var d=document.getElementById('terms_div');
  if (c.checked) {
    d.className='';
    return true;
  } else { 
    d.className='terms_error';
    return false;
  }
}
var terms = document.getElementById("termsCheckbox"),
    terms_div = document.getElementById("terms_div");

function validateTerms(){
    if(terms.checked == false){
        if(terms_div.className.indexOf("terms_error")<0){
            terms_div.className += " terms_error";
        }
        return false;
    }else{      
        terms_div.className = terms_div.className.replace(/\bterms_error\b/,'');
        return true;
    }
}