Получить статус флажка с помощью JavaScript - PullRequest
8 голосов
/ 01 июня 2011

Это мой флажок HTML код

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

это код JavaScript

var terms = $("#termsCheckbox");

function validateTerms(){
if(termsCheckbox.checked == false){
terms_div.addClass("terms_error");
return false;
}
else{           
terms_div.removeClass("terms_error");
return true;
}
}

Я хочу проверить, установлен флажок или нет, и если нет, добавить класс в term_div. Пожалуйста, помогите мне решить эту проблему. спасибо

Ответы [ 5 ]

13 голосов
/ 01 июня 2011

Вам необходим доступ к переменной className (чистый JS), в следующем предполагается, что у вашего div есть идентификатор terms_div, что terms_error - единственный класс, который вам может потребоваться в div, и чтоВы устанавливаете свой флажок с onClick="validateTerms();"

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;
  }
}
1 голос
/ 01 июня 2011

Демонстрация в реальном времени (нажмите текст "Условия 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;
    }
}
1 голос
/ 01 июня 2011

Просто привяжите обработчик 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
0 голосов
/ 01 июня 2011
if(document.form.termsCheckbox.checked==true)
alert('check box is cheked')
0 голосов
/ 01 июня 2011

попробуйте добавить onclick="validateTerms();" на флажок

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...