JavaScript表单验证-
我正在尝试获得一个基本的javascript验证。出于某种原因,它拾取文本和下拉列表,但不拾取单选按钮?我做错了什么JavaScript表单验证-,javascript,html,Javascript,Html,我正在尝试获得一个基本的javascript验证。出于某种原因,它拾取文本和下拉列表,但不拾取单选按钮?我做错了什么 函数validateForm(formId) { var输入,指数; var form=document.getElementById(formId); inputs=form.getElementsByTagName('input'); 用于(索引=0;索引
函数validateForm(formId)
{
var输入,指数;
var form=document.getElementById(formId);
inputs=form.getElementsByTagName('input');
用于(索引=0;索引
要验证单选按钮,您需要检查所有单选按钮,查看选中的属性是true
<script>
function validateForm(){
for(i=0; i<document.form.radios.length; i++){
if(document.form.radios[i].checked==false){
c=1;
}
else{
c=0;
break;
}}
if(c==1){
alert('Please select an option');
}
}
</script>
下面提供了一种方法,您可以通过该方法确定表单中是否有多个单选按钮
function hasEmptyRadio(radioMap) {
var emptyRadio = false;
for (var i in radioMap) {
if (radioMap.hasOwnProperty(i) && !radioMap[i]) {
emptyRadio = true;
break;
}
}
return emptyRadio; // return the radio object or name if required
}
function markEmptyRadios(radioMap, radioObj) {
var checked = radioObj.checked;
radioMap[radioObj.name] = radioMap[radioObj.name] || checked;
}
function validateForm(formId) {
var inputs, index;
var radioMap = {};
var form = document.getElementById(formId);
inputs = form.getElementsByTagName('input');
for (index = 0; index < inputs.length; ++index) {
if (inputs[index].type === 'radio') {
markEmptyRadios(radioMap, inputs[index])
}
// Your check for other input type can go here
}
alert("Radio Empty check returned => " + hasEmptyRadio(radioMap));
}
函数haspendyradio(无线地图){
var emptyRadio=false;
用于(radioMap中的var i){
if(radioMap.hasOwnProperty(i)&&!radioMap[i]){
emptyRadio=true;
打破
}
}
return emptyRadio;//如果需要,返回无线电对象或名称
}
功能标记EmptyRadios(radioMap,radioObj){
var checked=radioObj.checked;
radioMap[radioObj.name]=radioMap[radioObj.name]|选中;
}
函数validateForm(formId){
var输入,指数;
var radioMap={};
var form=document.getElementById(formId);
inputs=form.getElementsByTagName('input');
用于(索引=0;索引”+hasEmptyRadio(无线电地图));
}
单选按钮有点特殊;每个名称相同的组都属于同一个对象。因此,我认为只有在选中/选择其中一个时,您才会有价值。我同意您的观点。我的目标是抓住那些没有价值的人,他们应该正确地转换空字符串或空字符串。如果您在Ja中遇到问题,可以在HTML5中执行此操作vascript I在HTML5中使用的是required,但出现了太多用户错误。出于某种原因,现在没有出现任何空值。:/@user4107395请使用正确的formId尝试此编辑过的脚本?您发布的函数在if(inputs[index].value==null | | inputs[index].value==“”)附近有一个额外的右括号)
以及您丢失的for loop
<form>
<input type="radio" name="gender" value="Male" required /> Male
<input type="radio" name="gender" value="Female" /> Female
<input type="submit" name = "sub" value="SAVE" />
</form>
function hasEmptyRadio(radioMap) {
var emptyRadio = false;
for (var i in radioMap) {
if (radioMap.hasOwnProperty(i) && !radioMap[i]) {
emptyRadio = true;
break;
}
}
return emptyRadio; // return the radio object or name if required
}
function markEmptyRadios(radioMap, radioObj) {
var checked = radioObj.checked;
radioMap[radioObj.name] = radioMap[radioObj.name] || checked;
}
function validateForm(formId) {
var inputs, index;
var radioMap = {};
var form = document.getElementById(formId);
inputs = form.getElementsByTagName('input');
for (index = 0; index < inputs.length; ++index) {
if (inputs[index].type === 'radio') {
markEmptyRadios(radioMap, inputs[index])
}
// Your check for other input type can go here
}
alert("Radio Empty check returned => " + hasEmptyRadio(radioMap));
}