簡體   English   中英

JavaScript復選框onclick函數

[英]JavaScript checkbox onclick function

我堅持使用與復選框驗證相關的簡單JavaScript函數。 如果選中cb1,我需要document.write,如果cb2,則需要相同。 如果兩者或其中一個未被檢查,則不寫任何內容。

<html>
<head>
<title>TEST PAGE</title>
    <script type="text/javascript" src="submit.js"></script>
</head>
<body>
    <div style="width:100%"><input type="checkbox" id="cb1"></div>
    <div style="width:100%"><input type="checkbox" id="cb2"></div>

    <div style="width:100%"><input type="submit" name="execute" id="execute" value="Execute" onClick="run();"></div>

</body>
</html>

submit.js

function run() {

    document.write('<div>' + "HERE GOES YOUR CHECKBOX CHOICE: " + '</div>');

    if(document.getElementById("cb1").checked == true) {
        document.write("This is check box 1");
    }
    if(document.getElementById("cb2").checked == true) {
        document.write("This is check box 2");
    }
}

這是一個改進的運行功能:

function run() {

    var snip = "<div>HERE GOES YOUR CHECKBOX CHOICE: </div>";

    if(document.getElementById("cb1").checked == true) {
        snip += "<br/>This is check box 1";
    }
    if(document.getElementById("cb2").checked == true) {
        snip += "This is check box 2";
    }
    document.write(snip);
}

在實際讀取元素之前,每個人都發現了覆蓋html的錯誤,因此這是導致錯誤的原因,清除DOM然后嘗試讀取不再存在的輸入屬性。

你不應該使用document.write。 使用附加到標簽之類的

$("#divid").append($("<input/>",{type:"checkbox",onclick:"yourfunction(this)"}));

只需使用.checked在JavaScript jQuery的使用.prop('checked')

function run() {    

if(document.getElementById("cb1").checked) {
    document.write("<div>This is check box 1</div>");
}
if(document.getElementById("cb2").checked) {
    document.write("<div>This is check box 2</div>");
}
}
if (document.getElementById('cb1').checked && document.getElementById('cb2').checked) {
    // both are checked
}
else {
   // only one or none are checked
}

正如前面的一個答案中提到的那樣,你不應該使用document.write 您可以使用.append(string)向文檔添加內容:

document.append('Both boxes are checked');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM