jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 检查是否在选择“行”中选择了所需的文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在表单中有多个选择,我需要检查jQuery是否至少选择了所有必填字段(required =“true”).

像这样的东西:

<SELEct class="check" name="first">
    <option value="some" required="true">Some required</option>
    <option value="other">Other Value</option>
    <option value="few" required="true">Few required</option>
</SELEct>
<SELEct class="check" name="second">
    <option value="some" required="true">Some required</option>
    <option value="other">Other Value</option>
    <option value="few" required="true">Few required</option>
</SELEct>
<SELEct class="check" name="third">
    <option value="some" required="true">Some required</option>
    <option value="other">Other Value</option>
    <option value="few" required="true">Few required</option>
</SELEct>
<SELEct name="other">
    <option value="some" required="true">Some required</option>
    <option value="other">Other Value</option>
    <option value="few" required="true">Few required</option>
</SELEct>

我需要检查其类包含.check的所有SELEct元素,并确保分配了所有必需的字段.

我正在虑如下进行.

>创建所有必需值的数组:

var requiredFields = [];
$('option:SELEcted',this).attr('required').each(function(){
    requiredFields.push($(this).val());
})

>创建所有选定值的数组:

var valuesSELEcted = [];
$('.check').each(function(){
    valuesSELEcted.push($(this).val());
})

>检查所选字段是否在所选值数组中,如果不执行某些操作:

for(i=0;i<requiredFields;i++){
    if(jQuery.inArray(requiredFields[i],valuesSELEcted)==-1){
         var error += 'Please SELEct '+requiredFields[i];
    }
}

>显示错误消息,或者如果为空则执行以下操作:

if(error!=''){
    alert(error); // just for tesTing
} else {
     // have fun
}

我已经设置了一个简单的jsFiddle来测试它,但似乎我一定做错了什么,有什么帮助吗?

解决方法

这是一种用地图做的方法
http://jsfiddle.net/4vNcU/4/

$(document).on('click','.check-SELEct',function () {
var error = $(".check").find("option:SELEcted").map(collectErrors);
for (var i = 0; i < error.length; i++) {
    alert(error[i]);
}
});

function collectErrors() {
    if ($(this).attr("required") == undefined) {
       var $parent = $(this).parent();
       return "Please SELEct one of the folowing:" + 
       findrequired($parent) + 
       " For the SELEct Box " + $parent.attr("name");
    }
}

function findrequired($parent) {
    return $parent.find("option[required=true]").map(function () {
        return $(this).text();
    }).toArray().join()
}

大佬总结

以上是大佬教程为你收集整理的jquery – 检查是否在选择“行”中选择了所需的文件全部内容,希望文章能够帮你解决jquery – 检查是否在选择“行”中选择了所需的文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。