Javascript 禁用动态创建的选择框中的选项
Im动态地为用户创建新的下拉列表,以便在数据库中输入内容。我需要在用户创建的所有下拉列表中禁用用户以前的选择(例如,如果在第一个dpl中选择了第一个选项,那么他将无法在其他dpl中选择它。) 代码是------>! 这段代码在我的pc上运行良好,我不知道为什么它在JSFIDLE中不起作用,但您会了解这段代码的作用!我还注意到,它只在第一个选择框改变状态时运行js,而在其他选择框改变状态时不运行js 我试过了,但是运气不好。。。有什么建议吗?(另外还有一件我在小提琴上试过的东西,在这里贴的时间太长了) 编辑: 在本例中,下拉列表中的值来自数据库 我把它改了,这样会更容易Javascript 禁用动态创建的选择框中的选项,javascript,jquery,html,Javascript,Jquery,Html,Im动态地为用户创建新的下拉列表,以便在数据库中输入内容。我需要在用户创建的所有下拉列表中禁用用户以前的选择(例如,如果在第一个dpl中选择了第一个选项,那么他将无法在其他dpl中选择它。) 代码是------>! 这段代码在我的pc上运行良好,我不知道为什么它在JSFIDLE中不起作用,但您会了解这段代码的作用!我还注意到,它只在第一个选择框改变状态时运行js,而在其他选择框改变状态时不运行js 我试过了,但是运气不好。。。有什么建议吗?(另外还有一件我在小提琴上试过的东西,在这里贴的时间太长
此.value
可能会给您带来问题这将更改.each()
循环中的上下文。我建议在每个循环之前创建一个变量,var thisVal=this.value
,然后在each
中使用thisVal
。祝你好运,不行!是的,您可能有更多的问题,但我几乎可以肯定这是问题之一。也许是我创建额外选择框的方式?第一步是修复您的小提琴(缺少大括号和未定义的变量),以便我们可以尝试并提供帮助。
$('select').on('change', function() {
/* enable any previously disabled options */
$('option[disabled]').prop('disabled', false);
/* loop over each select */
$('select').each(function() {
/* for every other select, disable option which matches this this.value */
$('select').not(this).find('option[value="' + this.value + '"]').prop('disabled', true);
});
});