Как я могу проверить, если флажок установлен?


187

Я создаю мобильное веб-приложение с помощью jQuery Mobile и хочу проверить, установлен ли флажок. Вот мой код.

<script type=text/javascript>
  function validate(){
    if (remember.checked == 1){
      alert("checked") ;
    } else {
      alert("You didn't check it! Let me check it for you.")
    }
  }
</script>

<input id="remember" name="remember" type="checkbox" onclick="validate()" />

Но по тем или иным причинам он не выполняет его.

Пожалуйста помоги !

---- РЕДАКТИРОВАТЬ ----- Это то, что у меня есть на данный момент.

<DIV data-role="content" data-theme="g">
    <DIV class=ui-grid-g-login>
        <FORM method=post action=[$=PROBE(266)/] data-theme="C">
            <P>~DATA_ERROR~</P>
            <div id="mail" data-role="fieldcontain">
                <label for="mail">Email:*</label>       
                <input id="mail" name="mail" type="email" />
            </div>
            <div id="pass" data-role="fieldcontain">
                <label for="pass">Paswoord:*</label>        
                <input id="pass" name="pass" type="password" />
            </div>
            <div id="remember" data-role="fieldcontain">
                <label for="remember">Onthoud mij</label>       
                <input id="remember" name="remember" type="checkbox" onclick="validate()" />
            </div>
            <P><INPUT class=btn name=submit value=Login type=submit  onclick="validate()"></P>  
        </FORM>
    </DIV>
</DIV><!-- /content -->

<script type=text/javascript>
function validate(){
    var remember = document.getElementById('remember');
    if (remember.checked){
        alert("checked") ;
    }else{
        alert("You didn't check it! Let me check it for you.")
    }
}
</script>

----РЕДАКТИРОВАТЬ--

Решил это, проблема заключалась в том, что fieldcontain также был назван «запомнить»


1
Что rememberв этом контексте: if (remember.checked == 1){???
PeeHaa

Позже он должен запомнить адрес электронной почты и пароль. Это для страницы входа
Steaphann

Я пытаюсь сказать, что rememberименно undefinedв этом контексте. Попробуй console.log(remember);.
PeeHaa

Какую версию HTML вы используете? Это не совсем XHTML, не так ли?
Мистер Листер

Ответы:


272

checkedЭто booleanсвойство, так что вы можете напрямую использовать его в IFусловиях: -

 <script type="text/javascript">
    function validate() {
        if (document.getElementById('remember').checked) {
            alert("checked");
        } else {
            alert("You didn't check it! Let me check it for you.");
        }
    }
    </script>

2
Я всегда получаю сообщение «Вы не проверяли это! Позвольте мне проверить это для вас.
Steaphann

Нет, это работает нормально для меня; я получаю оба предупреждающих сообщения.
Пранав

@ Steaphann Вы заменили слово «запомнить» своим идентификатором флажка? ... о, только что заметил 2012 0.o ... ps вы забыли точку с запятой после 2-го предупреждения
josh.thomson

... Что если я не хочу, чтобы он проверял это для меня, и я просто хочу посмотреть, проверено ли это или нет?
Марк Крамер

@ josh.thomson точка с запятой необязательны.
kojow7

61

Попробуй это:

function validate() {
  var remember = document.getElementById("remember");
  if (remember.checked) {
    alert("checked");
  } else {
    alert("You didn't check it! Let me check it for you.");
  }
}

Ваш скрипт не знает, что это за переменная remember. Вы должны сначала получить элемент, используя getElementById ().


Вы должны также совет, чтобы раздеть это == 1. Работает только из-за двух ошибок. На самом деле значение trueили false, он должен просто использоватьif( remeber.checked )
jAndy

Я всегда получаю сообщение «Вы не проверяли это! Позвольте мне проверить это для вас.
Steaphann

16

Это позволит вам проверить , если элемент с id='remember'является'checked'

if (document.getElementById('remember').is(':checked')

3
isне принадлежит объектному элементу DOM
yves amsellem

10
.is()- это функция jQuery. .checkedэто JavaScript
Макс Каплан

8

Если вы используете эту форму для мобильного приложения, вы можете использовать обязательный атрибут html5. Вы не хотите использовать какие-либо проверки сценариев Java для этого. Он должен работать

<input id="remember" name="remember" type="checkbox" required="required" />

5

использовать как это

<script type=text/javascript>
function validate(){
if (document.getElementById('remember').checked){
          alert("checked") ;
}else{
alert("You didn't check it! Let me check it for you.")
}
}
</script>

<input id="remember" name="remember" type="checkbox" onclick="validate()" />

1
Я всегда получаю сообщение «Вы не проверяли это! Позвольте мне проверить это для вас.
Steaphann

@ user1251632 WFM тоже. Можете ли вы отредактировать свой вопрос и показать, что у вас есть сейчас? Возможно, вы сделали ошибку копирования и вставки.
Мистер Листер

document.getElementById ('Remember'). Check == 1 был изменен мной до вашего комментария .. это может быть проблемой.
hkutluay

4

Я использую это, и это работает для меня с Jquery :

Jquery:

var checkbox = $('[name="remember"]');

if (checkbox.is(':checked'))
{
    console.log('The checkbox is checked');
}else
{
    console.log('The checkbox is not checked');
}

Это очень просто, но работа.

С уважением!



3

Используйте следующий простой код: https://jsfiddle.net/Divyesh_Patel/v7a4h3kr/7/

<input type="checkbox" id="check">
<a href="#" onclick="check()">click</a>
<button onclick="check()">button</button>
<script>
 function check() {
    		if (document.getElementById('check').checked) {
            alert("checked");
        } else {
            alert("Not checked.");
        }
       
    }

</script>


2

rememberне определено ... и checkedсвойство является логическим, а не числом.

function validate(){
    var remember = document.getElementById('remember');
    if (remember.checked){
        alert("checked") ;
    }else{
        alert("You didn't check it! Let me check it for you.")
    }
}

2

Это должно работать

    function validate() {
        if ($('#remeber').is(':checked')) {
            alert("checked");
        } else {
            alert("You didn't check it! Let me check it for you.");
        }
    }


0

Используйте следующий простой код: https://jsfiddle.net/Divyesh_Patel/v7a4h3kr/7/

<input type="checkbox" id="check">
<a href="#" onclick="check()">click</a>
<button onclick="check()">
button
</button>
<script>
 function check() {
    		if (document.getElementById('check').checked) {
            alert("checked");
        } else {
            alert("You didn't check it! Let me check it for you.");
        }
       
    }

</script>


-1

Попробуй это

<script type="text/javascript">
window.onload = function () {
    var input = document.querySelector('input[type=checkbox]');

    function check() {
        if (input.checked) {
            alert("checked");
        } else {
            alert("You didn't check it.");
        }
    }
    input.onchange = check;
    check();
}
</script>

-1

Вы также можете использовать методы JQuery для достижения этой цели:

<script type="text/javascript">
if ($('#remember')[0].checked) 
{
 alert("checked");
}
</script>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.