Як я можу перевірити, чи встановлено прапорець?


186

Я будую мобільний веб-додаток з 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()" />

Але з тих чи інших причин це не виконує.

Будь ласка, допоможіть !

---- EDIT ----- Це те, що я маю на даний момент.

<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>

---- РЕДАКТУВАТИ--

Вирішено це, проблема полягала в тому, що зміст поля також було названо "пам'ятати"


1
Що rememberв цьому контексті: if (remember.checked == 1){???
PeeHaa

Пізніше слід пам’ятати електронну пошту та пароль. Це для сторінки входу
Steaphann

Я намагаюся сказати, що rememberце undefinedв цьому контексті. Спробуйте console.log(remember);.
PeeHaa

Яку версію HTML ви використовуєте? Це насправді не XHTML, чи не так?
Містер Лістер

Відповіді:


271

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 Чи замінили ви слово "запам'ятати" своїм ідентифікатором? ... о, щойно помітив 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

Я завжди отримую повідомлення "Ви цього не перевіряли! Дозвольте мені це перевірити.
Стефан

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
Я завжди отримую повідомлення "Ви цього не перевіряли! Дозвольте мені це перевірити.
Стефан

@ user1251632 WFM теж. Чи можете ви відредагувати своє запитання та показати, що у вас зараз? Можливо, ви зробили помилку копіювання та вставки.
Містер Лістер

document.getElementById ('запам'ятати'). перевірено == 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.