正在使用表单验证功能,该功能会生成一个空字段列表和一个不正确填写的字段列表。该脚本可以完美地用于文本和文本区域。当我将以下方法应用于单选按钮时:
$("input:radio[name]").each(function() {
$(this).removeClass("error"); // Remove previously-applied error class
if($(this).filter(":checked").length == 0) { // Make sure they chose an option.
emptys[j] = nameFix($(this).attr("name")); // Add to array, apply error class
$(this).addClass("error"); // increment placeholder and exit
j ++; // the function
return;
} else {
return;
}
}); // end radio each
未回答的广播组在
emptys
中产生2个索引,而已回答的广播组产生1个索引(我正在测试页面上,用户指示测试是通过还是失败)。到目前为止,我发现的普遍接受的答案都假设我将使用在JS中赋予
<input>
标记的特定属性。我正在构建的站点将具有数十种需要验证的各种形式,因此,我尝试生成通用的脚本来检查其有效性。编辑:HTML示例
<tr>
<td class="borderRight">Methane Overpressure</td>
<td>Target Pressure (psi)</td>
<td>300</td>
<td>± 1.0</td>
<td class="input"><input type="text" name="Target-Pressure" class="num" size="2" maxlength="5"></td>
<td class="input"><input type="radio" name="Target-Pressure-Pass-or-Fail" value="1"> P</td>
<td class="input">F <input type="radio" name="Target-Pressure-Pass-or-Fail" value="0"></td>
</tr>
<tr>
<td class="borderRight">Magnet</td>
<td>Magnetic Field Strength (T)</td>
<td>4.5</td>
<td>± 0.5</td>
<td class="input"><input type="text" name="Magnetic-Field-Strength" class="num" size="2" maxlength="4"></td>
<td class="input"><input type="radio" name="Magnetic-Field-Strength-Pass-or-Fail" value="1"> P</td>
<td class="input">F <input type="radio" name="Magnetic-Field-Strength-Pass-or-Fail" value="0"></td>
</tr>
<tr>
<td rowspan="2" class="borderRight">Acceleration</td>
<td>Radio Frequency (MHz)</td>
<td>68</td>
<td>± 0.1</td>
<td class="input"><input type="text" name="Radio-Frequency" class="num" size="2" maxlength="5"></td>
<td class="input"><input type="radio" name="Radio-Frequency-Pass-or-Fail" value="1"> P</td>
<td class="input">F <input type="radio" name="Radio-Frequency-Pass-or-Fail" value="0"></td>
</tr>
最佳答案
添加错误元素以供视觉参考的方法
var radios = $mainElem.find(':radio');
var radioNames={};
radios.each(function(){
radioNames[this.name] = true;
});
for( name in radioNames){
var radioGroup=$mainElem.find('[name=' + name + ']');
if( !radioGroup.filter(':checked').length ){
radioGroup.parent().append('<span class="error">Ooooops</span>');
}
}
DEMO
关于javascript - 使用jQuery检查名称未知的所有广播组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25877990/