我必须在jQuery中更改所选的选项值。这是我尝试过的实际代码和动态jQuery。我知道我到了别的地方,我不知道它在哪里。如果有人能帮助我,我将非常感激。
我有一个主div容器中的行列表,它们具有从后端填充动态加载的选择框。选择框的数量也会动态渲染。我希望没关系。选择框位置的排列就像这样......
例如,当我在第一个组合框中选择选项时,我必须验证是否已在另一个选择框中选择了相同的选定选项。如果选中它,我必须显示警告消息,说明您已在另一个选择框中选择了相同的值。必须对所有选择框进行相同的验证。
这是我尝试过的代码:
$(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();});});
这个不能正常工作。有什么想法吗?
答案 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;
}
});
为您需要的多个选择框执行此操作,或者如果您感觉异国情调,请将其置于巧妙的循环中...