选择框':selected'值验证jQuery

时间:2014-09-24 11:18:04

标签: jquery onchange

我必须在jQuery中更改所选的选项值。这是我尝试过的实际代码和动态jQuery。我知道我到了别的地方,我不知道它在哪里。如果有人能帮助我,我将非常感激。

我有一个主div容器中的行列表,它们具有从后端填充动态加载的选择框。选择框的数量也会动态渲染。我希望没关系。选择框位置的排列就像这样......

enter image description here

例如,当我在第一个组合框中选择选项时,我必须验证是否已在另一个选择框中选择了相同的选定选项。如果选中它,我必须显示警告消息,说明您已在另一个选择框中选择了相同的值。必须对所有选择框进行相同的验证。

这是我尝试过的代码:

$(document).on('change', 'select.addedOptions, select.defaultSel', function () { var selCurrent = $(this).find(':selected').val();$('.confCustFormCont .confCustRow').each(function() {var selAllOtherValue = $(this).find('select option:selected').text();});});

这个不能正常工作。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

根据Edward的建议,您可以使用循环获取值,然后比较当前选定的值。给你的样本:

        $("select").change(function () {
            var selectedValues = [], currentValue = $(this).find("option:selected").val();
            $("select").each(function () {
                selectedValues.push($(this).find("option:selected").val());
            });
            if (selectedValues.indexOf(currentvalue) > -1)
                alert("you have already selected this value, please select another one."); return false;
        });

希望这会有所帮助:)

答案 1 :(得分:1)

下面的基本原则是,您可以通过选择其值来选择上一个选项的选项,然后将该值与当前值匹配。

select1 = $('#select1');
select2 = $('#select2');
select3 = $('#select3');

$(select2).change(function() {
    var this_val = $(this).val();
    var that_val = $(select1).find('option[value="' + val + '"]').val();
    if(this_val == that_val) {
        alert("Oh no you don't");
        return false;
    }
});

为您需要的多个选择框执行此操作,或者如果您感觉异国情调,请将其置于巧妙的​​循环中...