正在使用表单验证功能,该功能会生成一个空字段列表和一个不正确填写的字段列表。该脚本可以完美地用于文本和文本区域。当我将以下方法应用于单选按钮时:

$("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 &#40;psi&#41;</td>
        <td>300</td>
        <td>&#177; 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 &#40;T&#41;</td>
        <td>4.5</td>
        <td>&#177; 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 &#40;MHz&#41;</td>
        <td>68</td>
        <td>&#177; 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/

10-11 23:16