[英]JavaScript Validation For Checkbox, When Multiple checkbox selected from option list
I want to do JavaScript validation for Checkbox 我想对Checkbox进行JavaScript验证
If Value from Checkbox is not selected, it should get alert "Please Select Languages You Know" 如果未选中“来自复选框的值”,则应收到警报“请选择您知道的语言”
But if user select 2 Languages from list of checkbox. 但是,如果用户从复选框列表中选择2种语言。 I need that 2 languages should get alert using JavaScript.
我需要使用JavaScript来提醒2种语言。
I know to do with single checkbox, but not getting how to do using array. 我知道与单个复选框,但不知道如何使用数组。
Here is my Code... 这是我的代码...
<script type="text/javascript"> function myFunction(form){ var i, chks = document.getElementsByName('lang[]'); for (i = 0; i < chks.length; i++){ if (chks[i].checked){ //Here how i should alert selected values return true; }else{ alert('No item selected'); return false; } } } </script>
<form name="registration" id="registration_form_id" action="" method="post" onsubmit="return myFunction(this)"> <div id="languageId"><label>Language : </label> <input type="checkbox" name="lang[]" value="english" >English</input> <input type="checkbox" name="lang[]" value="marathi">Marathi</input> <input type="checkbox" name="lang[]" value="hindi">Hindi</input> </div> <div id="submit1"><button type="submit">Submit</button></div><br/> </form>
Thank You, Rahul 谢谢拉胡尔
If you want to get the list of selected checkbox values.. you can use this.. 如果要获取所选复选框值的列表,则可以使用它。
$('#someButton').click(function() {
var values= [];
$('#MyDiv input:checked').each(function() {
values.push(this.val);
});
// now values contains all of the values of checked checkboxes
// do something with it
});
If you only need one selected value, it's easier to use a radio
input type. 如果仅需要一个选定的值,则使用
radio
输入类型会更容易。 With it, you can find the selected value using a querySelector
(see MDN ). 使用它,您可以使用
querySelector
查找选定的值(请参见MDN )。 For multiple languages, you can also use querySelectorAll
, convert its results to an Array
and use Array.map
(see MDN ) to map the results into an Array
of the values of the checked checkboxes. 对于多种语言,还可以使用
querySelectorAll
,将其结果转换为Array
并使用Array.map
(请参见MDN )将结果映射到已选中复选框的值的Array
中。
Here's your snippet rewritten for both cases (without a form): 这是针对两种情况重写的代码段(无表格):
(function (d, w, undefined) { d.querySelector('#languageId button').addEventListener('click', doSubmit); d.querySelector('#multiLanguageId button').addEventListener('click', doSubmitMulti); var languageSelectorContainer = d.querySelector('#languageId'); var multiLanguageSelectorContainer = d.querySelector('#multiLanguageId'); function doSubmit() { var languageChecked = languageSelectorContainer .querySelector('[type=radio]:checked'); d.querySelector('#result').innerHTML = 'your selected language: <b>'+ (languageChecked ? languageChecked.value : 'not yet selected') + '</b>'; } function doSubmitMulti() { var languagesChecked = [].slice.call( multiLanguageSelectorContainer .querySelectorAll('[type=checkbox]:checked') ) .map(function (v){ return v.value; }); d.querySelector('#result').innerHTML = 'you selected these language(s): <b>'+ (languagesChecked.length ? languagesChecked.join(', ') : 'none yet selected') + '</b>'; } }(document, window))
<div id="languageId">Pick your language: <input type="radio" name="lang[]" value="english">English <input type="radio" name="lang[]" value="marathi">Marathi <input type="radio" name="lang[]" value="hindi">Hindi <button>Submit</button> </div> <div id="multiLanguageId">Pick the languages you know: <input type="checkbox" name="mlang[]" value="english">English <input type="checkbox" name="mlang[]" value="marathi">Marathi <input type="checkbox" name="mlang[]" value="hindi">Hindi <button>Submit</button> </div> <div id="result"></div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.