2014-02-26 6 views
1

Я застрял в простой функции JavaScript, связанной с проверкой флажка. Мне нужно document.write, если проверяется cb1, и то же самое, если cb2. И если оба, или один из них не проверен, тогда ничего не пишите.JavaScript checkbox onclick function

<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"); 
    } 
} 
+0

В чем именно проблема, с которой вы сталкиваетесь? Вы ищете решение jQuery? Вы использовали тег, но не код jQuery. – Blazemonger

ответ

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, а затем попытка прочитать свойство ввода, которое больше не существует.

+0

Это то, что мне нужно. Спасибо за решение. – mpavlovic89

1

вы не должны использовать document.write. использование Добавлять в теги как

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

просто использовать .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>"); 
} 
} 
0
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'); 
Смежные вопросы