Reputation: 77
I want to print all values that I tick in the checkbox if I checked more than 1 checkbox. However, it only print the first value that I checked. If I checked more than 1 checkbox in this image It only printed one value from the checkbox Thanks in advance
// HTML code
<strong>IT Skills: </strong><br><br>
<div class="checkboxlist" id="skills">
<input type="checkbox" name="skills" value="Programming/Application Development" class="chk"> Programming/Application Development 
<input type="checkbox" name="skills" value="Project Management" class="chk"> Project Management <br>
<input type="checkbox" name="skills" value="Helpdesk/Technical Support" class="chk"> Helpdesk/ Technical Support     
<input type="checkbox" name="skills" value="Security/Compliance Governance" class="chk"> Security/ Compliance Governance <br>
<input type="checkbox" name="skills" value="Web Development" class="chk"> Web Development         
<input type="checkbox" name="skills" value="Database Administration" class="chk"> Database Administration <br>
<input type="checkbox" name="skills" value="Business Intelligence/Analytics" class="chk"> Business Intelligence/ Analytics    
<input type="checkbox" name="skills" value="Mobile Applications and Device Management" class="chk"> Mobile Applications and Device Management <br>
<input type="checkbox" name="skills" value="Networking" class="chk"> Networking            
<input type="checkbox" name="skills" value="Big Data" class="chk"> Big Data <br>
</div>
<span class="error_form" id="skills_error_message"></span>
//jQuery code
function check_skills(){
var skill = [];
if (skills == 'checked') {
$("#skills_error_message").hide();
$("#skills").css("border-bottom","2px solid #34F458");
} else {
$("#skills_error_message").html("Please select a skill!");
$("#skills_error_message").show();
$("#skills").css("border-bottom","2px solid #F90A0A");
error_skills = true;
}
}
Upvotes: 2
Views: 675
Reputation: 77
I already found out the answer to my question. It turned that I need to add [] in name in every checkbox. So when I added [] to skills, it printed all the checked value from the checkbox. By the way, thanks for everyone who've helped me.
<strong>IT Skills: </strong><br><br>
<div class="checkboxlist" id="skills">
<input type="checkbox" name="skills[]" value="Programming/Application Development" class="chk"> Programming/Application Development 
<input type="checkbox" name="skills[]" value="Project Management" class="chk"> Project Management <br>
<input type="checkbox" name="skills[]" value="Helpdesk/Technical Support" class="chk"> Helpdesk/ Technical Support     
<input type="checkbox" name="skills[]" value="Security/Compliance Governance" class="chk"> Security/ Compliance Governance <br>
<input type="checkbox" name="skills[]" value="Web Development" class="chk"> Web Development         
<input type="checkbox" name="skills[]" value="Database Administration" class="chk"> Database Administration <br>
<input type="checkbox" name="skills[]" value="Business Intelligence/Analytics" class="chk"> Business Intelligence/ Analytics    
<input type="checkbox" name="skills[]" value="Mobile Applications and Device Management" class="chk"> Mobile Applications and Device Management <br>
<input type="checkbox" name="skills[]" value="Networking" class="chk"> Networking            
<input type="checkbox" name="skills[]" value="Big Data" class="chk"> Big Data <br>
</div>
<span class="error_form" id="skills_error_message"></span>
[skills] => Array
(
[0] => Web Development
[1] => Business Intelligence/Analytics
[2] => Networking
)
Upvotes: 0
Reputation: 7283
Your function should look like below
function check_skills(){
var selected_skills = $('.chk:checked');
if (selected_skills.length > 0)
{
$("#skills_error_message").hide();
$("#skills").css("border-bottom","2px solid #34F458");
}
else {
$("#skills_error_message").html("Please select a skill!");
$("#skills_error_message").show();
$("#skills").css("border-bottom","2px solid #F90A0A");
error_skills = true;
}
}
Using the selector :checked
along with the .chk
class to get all the checked check boxes every time the function is called.
Upvotes: 0
Reputation: 13417
Use the jQuery :checked
selector
//jQuery code
function check_skills() {
var favorite = [];
$.each($("input[name='skills']:checked"), function() {
favorite.push($(this).val());
});
console.log(favorite)
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<strong>IT Skills: </strong><br><br>
<div class="checkboxlist" id="skills">
<input type="checkbox" name="skills" value="Programming/Application Development" class="chk"> Programming/Application Development 
<input type="checkbox" name="skills" value="Project Management" class="chk"> Project Management <br>
<input type="checkbox" name="skills" value="Helpdesk/Technical Support" class="chk"> Helpdesk/ Technical Support     
<input type="checkbox" name="skills" value="Security/Compliance Governance" class="chk"> Security/ Compliance Governance <br>
<input type="checkbox" name="skills" value="Web Development" class="chk"> Web Development         
<input type="checkbox" name="skills" value="Database Administration" class="chk"> Database Administration <br>
<input type="checkbox" name="skills" value="Business Intelligence/Analytics" class="chk"> Business Intelligence/ Analytics    
<input type="checkbox" name="skills" value="Mobile Applications and Device Management" class="chk"> Mobile Applications and Device Management <br>
<input type="checkbox" name="skills" value="Networking" class="chk"> Networking            
<input type="checkbox" name="skills" value="Big Data" class="chk"> Big Data <br>
</div>
<span class="error_form" id="skills_error_message"></span>
<button onclick="check_skills()">
Check
</button>
Upvotes: 1