jQuery - 在选择选项事件时
jQuery - On Select Option Event
我试图做到这一点,当有人从我的列表中选择某个选项时,它会触发一个事件。我知道你应该使用 .change 事件,但这对我不起作用。
查看下面的代码。
选择:
$co1 = array("English", "Math", "Science", "History");
for($c=1;$c<5;$c++){
echo '<select name="c'.$c.'" id="course'.$c.'" class="selectpicker"><option selected="selected" id="course'.$c.'" value="course'.$c.'" name="'.$c.'">Course '.$c.'</option>';
foreach ($co1 as &$cl1){
echo '<option value="'.$cl1.'" name="'.$cl1.'">'.$cl1.'</option>';
}
echo '</select>';
}
j查询:
<script>
$('#course1').change(function(){
$("#course2 option[value='Math']").each(function() {
$(this).remove();
});
})
</script>
我基本上使用 PHP 来制作它,因此有四个不同的选择选项,具有相同的选项,但评分系统的值不同。我想使用此脚本来制作它,以便当您为第一门课程选择数学时,它会将其从其他 3 门课程的列表中删除。
任何想法这将如何工作?我愿意就其他方法提出建议。
使用 delegation
$('body').delegate('#course1','change',function(){
$("#course2 option[value='Math']").each(function() {
$(this).remove();
});
})
尝试:
$("body").on("change","#course1",function () {
$("#course2").find("option[value='Math']").remove();
});
在这里摆弄。
属性
name
和id
仅适用于select
标签。打开此链接以查看标准选择选项 html 标记。如果你这样做,你就有两个相同的id。 <select>
,以及您的第一<option>
。
尝试将您的 PHP 更改为:
$co1 = array("English", "Math", "Science", "History");
for($c=1;$c<5;$c++){
echo '<select name="c'.$c.'" id="course'.$c.'" class="selectpicker">
<option selected="selected" value="course'.$c.'">Course '.$c.'</option>';
foreach ($co1 as &$cl1){
echo '<option value="'.$cl1.'">'.$cl1.'</option>';
}
echo '</select>';
}
这是我
能想到的最短的:
$('#course1').change(function () {
$('#course2').find('option:gt(0)').remove().end().append($(this).find('option:gt(0)[value!=' + $(this).val() + ']').clone())
})
js小提琴示例
如果选择相同作为课程 1,这将从课程 2 中隐藏该选项,如果用户在课程 1 中选择另一个选项,则显示该选项
$('#course1').change(function () {
var val = $(this).val()
if($('#course2').val()==val)
$('#course2').val($('#course2').children('option:first').val())
$("#course2 option").each(function () {
if ($(this).val() == val)
$(this).hide(); //change this line to $(this).remove() to remove permanently
//and remove the else part below
else
$(this).show()
});
})
演示
请注意,完全删除后,您将无法再次显示它,因此我建议在更改路线时使用show
和hide
1
我希望我做对了你想做的事情。 试试这个小提琴
您可以只.hide()
与当前所选内容匹配的选项,并在当前:hidden
元素.show()
再次显示之前隐藏的选项?
$('#course1').change(function(){
var sel = $(this).val();
$("#course2 option:hidden").show();
$("#course2 option[value='"+sel+"']").each(function() {
$(this).hide();
});
});
相关文章:
- 如何在触发事件后选择select选项
- 当我更改innerHtml时,引导选项卡事件不再工作
- Javascript事件;在新选项卡中打开”;
- 使用java脚本更改onClick事件中菜单选项卡的颜色
- 选项卡面板事件
- 如何使用选项useCSS set true为bxSlider加载onSlideAfter()事件
- 更改事件的fullPage.js选项
- 选择选项是添加或删除事件
- chrome中的onmouseover(下拉选项标记)事件不起作用-php,javascript
- 如何将点击事件附加到引导选项卡
- jquery点击bootstrap 3选项卡上的事件
- 单击事件在jquery easyui多选项卡中不起作用
- 如何防止onclick事件在select选项中触发
- 在Jquery easyui中,多个选项卡提交按钮点击事件正在重定向到主页(第一个)选项卡
- 选择选项淘汰赛事件不起作用
- jQuery UI 选项卡取消选择事件或在选择时保存上一个选项卡
- 锤子.js 2.0 使用 jquery 插件时不返回事件选项
- j查询选择“获取选择时更改事件”选项
- 将事件选项作为函数的参数传递
- Chrome选择输入点击事件选项(改变不做我需要的)