ฉันจะตรวจสอบว่าเช็คบ็อกซ์ถูกทำเครื่องหมายได้อย่างไร?


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>

---- EDIT--

แก้ไขมันปัญหาคือ fieldcontain ถูกตั้งชื่อว่า 'Remember'


1
สิ่งที่อยู่rememberในบริบทนี้: if (remember.checked == 1){???
PeeHaa

หลังจากนั้นควรจำอีเมลและรหัสผ่าน มันเป็นหน้าเข้าสู่ระบบ
Steaphann

สิ่งที่ฉันพยายามจะพูดrememberคือundefinedในบริบทนั้น ลองconsole.log(remember);ดู
PeeHaa

คุณใช้ HTML เวอร์ชันไหน ไม่ใช่ XHTML จริงๆเหรอ?
Mr Lister

คำตอบ:


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

ไม่ทำงานได้ดีสำหรับฉัน ฉันได้รับข้อความแจ้งเตือนทั้งสองแล้ว
ปราณเนา

@Sthaphann คุณแทนที่คำว่า 'จำ' ด้วยรหัสช่องทำเครื่องหมายของคุณ? ... โอ้เพิ่งสังเกตุ 2012 0.o ... ps คุณลืมเครื่องหมายทวิภาคหลังจากประกาศแจ้งเตือนฉบับที่ 2
josh.thomson

.. ถ้าฉันไม่ต้องการให้ตรวจสอบมันสำหรับฉันและฉันแค่ต้องการดูว่ามันถูกตรวจสอบหรือไม่?
Mark Kramer

@ josh.thomson semi-colons เป็นทางเลือก
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คือจาวาสคริปต์
max kaplan

8

หากคุณกำลังใช้แบบฟอร์มนี้สำหรับแอพมือถือคุณอาจใช้แอตทริบิวต์ที่จำเป็น html5 คุณไม่ต้องการใช้การตรวจสอบจาวาสคริปต์สำหรับสิ่งนี้ มันควรจะทำงาน

<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 เช่นกัน คุณสามารถแก้ไขคำถามของคุณและแสดงสิ่งที่คุณมีตอนนี้? บางทีคุณทำผิดพลาดในการคัดลอกและวาง
Mr Lister

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>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.