Javascript 是否验证下拉框选择?

Javascript 是否验证下拉框选择?,javascript,jquery,Javascript,Jquery,这里我的要求是,一旦我们在一个选择框中选择了儿子或父亲,如果我在另一个选择框中选择了“岳母”或“岳父”,我想要一条警告消息,如“姻亲不适用” 这是我的密码 if (arr.indexOf(!(($(this).val() == 'Son' || $(this).val() == 'Father'))) > -1) { alert('In-laws are not applicable'); return false; } 谁能帮我一下吗。JSFIDLE是 -谢谢。如果我理

这里我的要求是,一旦我们在一个选择框中选择了儿子或父亲,如果我在另一个选择框中选择了“岳母”或“岳父”,我想要一条警告消息,如“姻亲不适用”

这是我的密码

if (arr.indexOf(!(($(this).val() == 'Son' || $(this).val() == 'Father'))) > -1) {
    alert('In-laws are not applicable');
    return false;
}
谁能帮我一下吗。JSFIDLE是


-谢谢。

如果我理解你的意思,你想知道的是“儿子”或“父亲”是否已经被选中,而我们目前正在选择一个“姻亲”来抛出错误

if (arr.indexOf('Son') > -1 || arr.indexOf('Father') > -1 && currentVal.indexOf('-in-law') > -1) {
        alert('In-laws are not applicable');
        return false;
    }
那个代码可以做到这一点。如果你想让它反向运行(即,我们也不能在儿子或父亲之前选择姻亲),我们需要添加以下内容:

if ((arr.indexOf('Father-in-law') > -1 || arr.indexOf('Mother-in-law') > -1) && (currentVal === 'Son' || currentVal === 'Father')) {
        alert('In-laws are not applicable');
        return false;
    }
另外:您可以在开始时将
$(this).val()
取出到一个变量中,这样您就永远不会检查它了。所以就像
var currentVal=$(this).val()
,然后引用它


这里有一把小提琴:

在用户选择
岳父或
岳母后,您可以检查
选择的每一个
选项
查找
儿子或
父亲

if($(this).val()=='Mother-in-law' || $(this).val()=='Father-in-law'){

    //for each of the Relation selects, we check if anyone is Son or Father              
    $('.classSelect').each(function(){
        var currentSelect = $(this).val();
        if( currentSelect == 'Son' ||  currentSelect == 'Father'){
            alert("In-laws are not applicable");  
        }
    });

}   
活生生的例子:

更新 使用
arr
数组的实例:


另外,我会将
$(this).val()的值保存在变量中。

这里是另一个选项。此代码的效率低于其他答案,因为它将始终进行迭代

jQuery有两种类型的
$。每种类型(数组、函数(索引、值).
其工作原理与当前循环类似

var fields = new Array();
$("#dataTable tr select[name^='dRelation']").each(function(i){
    fields.push(this.value);
 });
var rel = $(this).val();
$.each(fields, function(i,val) {
    if((val=='Son' || val=='Father') && (rel == 'Father-in-law' || rel == 'Mother-in-law'))                                 
        alert("yep");
 });

“科林克卢,那么他将知道如何利用它:”显然不是,因为他问这个问题:“谢谢你的解决方案,这对我帮助很大,我的问题解决了。谢谢你的解决方案,这对我帮助很大,我的问题解决了。”拉贾耶克哈尔:如果我的解决方案帮助了你,请考虑接受它。谢谢你的解决方案,这对我很有帮助。