我的javascript中存在问题。 我想要做的就是如果我的用户没有选择任何复选框给出10个复选框,那么我想给他一个提醒,否则提交表格。 我写了一个js代码,但即使选中复选框也不行。请指出我的错误。 这是我的代码。
window.onload = function() {
document.getElementById('submitbtn').onclick = function() {
var count = 0;
if(document.getElementById("pid1").checked == "checked")
{
count++;
}
if(document.getElementById("pid2").checked == "checked")
{
count++;
}
if(document.getElementById("pid3").checked == "checked")
{
count++;
}
if(document.getElementById("pid4").checked == "checked")
{
count++;
}
if(document.getElementById("pid5").checked == "checked")
{
count++;
}
if(document.getElementById("pid6").checked == "checked")
{
count++;
}
if(document.getElementById("pid7").checked == "checked")
{
count++;
}
if(document.getElementById("pid8").checked == "checked")
{
count++;
}
if(document.getElementById("pid9").checked == "checked")
{
count++;
}
if(document.getElementById("pid10").checked == "checked")
{
count++;
}
alert(count);
if(count == 0){
alert("Please select atleast 1 product");
return false;}
else{
document.getElementById("formreturn").submit();
return false;}
};
};
答案 0 :(得分:4)
您应该检查checked
属性是否为truthy / falsy,因为checked
属性是布尔值。像这样:
if (document.getElementById("pid8").checked) { ..
即使在HTML中,您也不需要将字符串“checked”分配给“checked”属性。只有这个属性的存在就足够了。
您可以重写:
<input type="checkbox" checked="checked" />
这样:
<input type="checkbox" checked />
事实上,你可以为它指定任何东西,它将被忽略并视为存在。
这也有效:
<input type="checkbox" checked="DoNotCheck" />
我看到您正在尝试计算已选中复选框的数量。您可以使用querySelectorAll
轻松完成此操作。
请参阅此代码段:
document.getElementById('btn').onclick = function() {
var l = document.querySelectorAll("input[type=checkbox]:checked").length;
document.getElementById('result').innerText = l;
}
<input type="checkbox" /><input type="checkbox" /><input type="checkbox" />
<input type="checkbox" /><input type="checkbox" /><input type="checkbox" />
<hr />
<input id="btn" type="button" value="Go" />
<p id="result" ></p>
答案 1 :(得分:2)
您的回答:使用checked属性,它是一个布尔值,因此您不需要将其与“已检查”进行比较。
其次: 重写它,所以代码较少:)
var count = 0;
for (var index = 1; index<= 10; index++){
if(document.getElementById("pid" + index).checked){
count++;
}
}
答案 2 :(得分:2)
<form action="some.php" id="myForm" method="POST">
<input type="checkbox" name="some1" value="" id="some1">
<label for="some1">title of checkbox 1</label>
<input type="checkbox" name="some2" value="" id="some2">
<label for="some2">title of checkbox 2</label>
<input type="checkbox" name="some3" value="" id="some3">
<label for="some3">title of checkbox 3</label>
</form>
$(function(){
var form = $("#myForm");
form.submit(function(e){
if(form.find("input[type=checkbox]:checked").length > 0){
} else{
}
});
});
答案 3 :(得分:1)
假设pidX
input
属于checkbox
类型,您不需要将.checked
与"checked"
进行比较。
另外,使用循环...
window.onload = function() {
document.getElementById('submitbtn').onclick = function() {
var count = 0;
for(var i = 1; i <= 10; i++) {
if (document.getElementById("pid" + i).checked) {
count++;
}
}
alert(count);
if (count == 0) {
alert("Please select at least 1 product");
return false;
}
document.getElementById("formreturn").submit();
return false;
};
};