Jquery 仅允许在表单中的一个输入字段中输入

Jquery 仅允许在表单中的一个输入字段中输入,jquery,html,Jquery,Html,我的表单大约有20-25个字段。我需要实现以下要求 在所有字段中,有4个特定字段需要进行以下验证 如果没有填充任何字段,则突出显示字段并显示错误至少需要一个字段 如果填充了多个字段,则突出显示字段并显示错误,只需要一个字段 我从JSON文件中获取这些字段的选择器。下面是一个HTML字段的示例 <input type="text" name="s_18_1_2_0" value="" aria-labelledby="DC2_AP2-T_Transport_speed_-_Busines

我的表单大约有20-25个字段。我需要实现以下要求

在所有字段中,有4个特定字段需要进行以下验证

  • 如果没有填充任何字段,则突出显示字段并显示错误至少需要一个字段
  • 如果填充了多个字段,则突出显示字段并显示错误,只需要一个字段
我从JSON文件中获取这些字段的选择器。下面是一个HTML字段的示例

<input type="text" name="s_18_1_2_0" value="" aria-labelledby="DC2_AP2-T_Transport_speed_-_Business_Label" aria-label="AP2-T Transport speed - Business" style="height: 30px; width: 140px;" maxlength="250" class="siebui-input-align-left ui-autocomplete-input siebui-input-popup undefined" autocomplete="off" role="combobox" tabindex="0" aria-readonly="false" aria-describedby=" s_18_1_2_0_icon">

<input type="text" name="s_18_1_8_0" value="" aria-labelledby="DC2_Pair_in_Operator_Label" aria-label="Pair in Operator trunk" style="height: 30px; width:150px;" maxlength="250" tabindex="0" class="siebui-input-align-left dc2-invalid" aria-readonly="false" title="Pair in Operator trunk is required field">

我已经能够编写以下代码来选择所有字段

for(var i = 0; i < param.length; i++){
    selector = param[i].replace(/\s/g,"_") + "_Label";
    input ? input += ", input[aria-labelledby=" + selector + "]" : input = "input[aria-labelledby=" + selector + "]";

    $(input).each(function(e){
        //if($(this).val() != "")
        SiebelJS.Log(this);
    });

}
for(变量i=0;i
这段代码选择我需要执行验证的字段,但主要的困难是突出显示部分,因此我需要验证失败的字段的选择器。除了每个过滤器之外,我还可以使用过滤器吗


任何帮助都将不胜感激

首先以您的样式声明一个类:

    <style type="text/css">
    .error {
        border:1px solid red;
        background-color:yellow;
    }
</style>

.错误{
边框:1px纯红;
背景颜色:黄色;
}
然后尝试以下代码:

   var maxLimit = 0;
        var minLimit = 0;
        $(input).each(function () {
            if ($(this).val().length < 1) {
                minLimit++;
            } else {
                maxLimit++;
            }
        });
        if (minLimit == $(input).length) {
            $(input).addClass("error");
            alert("Message for required field");
        }
        else if (maxLimit > 1) {
            $(input).addClass("error");
            alert("Message to fill only 1 input value, not more");
        }
        else if (minLimit != $(input).length && maxLimit < 2) {
            $(input).removeClass("error");
        }
var maxLimit=0;
var minLimit=0;
$(输入)。每个(函数(){
if($(this).val().length<1){
minLimit++;
}否则{
maxLimit++;
}
});
if(minLimit==$(输入).length){
$(输入).addClass(“错误”);
警报(“必填字段的消息”);
}
否则如果(最大限制>1){
$(输入).addClass(“错误”);
警报(“仅填写1个输入值的消息,而不是更多”);
}
else if(minLimit!=$(输入).length&&maxLimit<2){
$(输入).removeClass(“错误”);
}

这可能会对您有所帮助。

是的,请使用过滤器