javascript - 如果选择了两个 Select2 选择则显示警报

标签 javascript jquery jquery-select2

假设我有两个 Select2 选择:

选择A

选项 1 选项2

选择B

选项 1 选项 2

当为“选择 A”选择了某个选项并为“选择 B”选择了某个选项时,我想捕获一个事件,然后显示可忽略的警报,例如alertalert-warningalert-dismissible fade show

我曾想过捕获焦点事件,但我一直无法实现,有什么想法吗?

<label style="font-size: 20px;">SELECT A </label> 
<select id="selectA" class="form-control" disabled>
    <option selected>All</option>
        <option>Option 1</option>
        <option>Option 2</option>
</select>
<label style="font-size: 20px;">SELECT B </label> 
<select id="selectB" class="form-control" disabled>
    <option selected>All</option>
        <option>Option 1</option>
        <option>Option 2</option>
</select>

我想实现这样的事情:

$(function () {
  'use strict';
  $('.dropdown').on('change', function (event) {
    var selectedValue = $(event.currentTarget).val();
    var matchedDropdowns = $('.dropdown').filter(function (index) {
      return $(this).val() === selectedValue;
    });
    if (matchedDropdowns.length > 1) {
      alert("Alert Alert!")
    }
  })
})

问题是该函数仅比较两个选定值是否相等。当选择的两个选定值不同于默认值“全部”时,我需要事件,但它们不一定必须是相等的值。

最佳答案

问题出在您的条件中。您需要检查这 2 个选择是否等于默认值“全部”

不等/不等于运算符:!=。 阅读有关表达式和运算符的更多信息 here .

HTML:

<div class="row d-flext justify-content-center">
    <div class="col-md-4">
        <label style="font-size: 20px;">SELECT A </label> 
        <select id="selectA" class="multi-select form-control">
            <option selected>All</option>
                <option>Option 1</option>
                <option>Option 2</option>
        </select>
    </div>

    <div class="col-md-4">
        <label style="font-size: 20px;">SELECT B </label> 
        <select id="selectB" class="multi-select form-control">
            <option selected>All</option>
                <option>Option 1</option>
                <option>Option 2</option>
        </select>
    </div>
</div>

jQuery:

$('.multi-select').on("change", function() {
    var selectValA = $('#selectA').val();
    var selectValB = $('#selectB').val();

    if(selectValA != "All" && selectValB != "All") {
        alert('The value of the two selects are no longer "All"');
    }
});

片段:

$('.multi-select').on("change", function() {
	var selectValA = $('#selectA').val();
	var selectValB = $('#selectB').val();
	
	if(selectValA != "All" && selectValB != "All") {
		alert('The value of the two selects are no longer "All"');
	}
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row d-flext justify-content-center">
	<div class="col-md-4">
		<label style="font-size: 20px;">SELECT A </label> 
		<select id="selectA" class="multi-select form-control">
			<option selected>All</option>
				<option>Option 1</option>
				<option>Option 2</option>
		</select>
	</div>
	
	<div class="col-md-4">
		<label style="font-size: 20px;">SELECT B </label> 
		<select id="selectB" class="multi-select form-control">
			<option selected>All</option>
				<option>Option 1</option>
				<option>Option 2</option>
		</select>
	</div>
</div>

Codepen 示例 here .

关于javascript - 如果选择了两个 Select2 选择则显示警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62341015/

相关文章:

android - phonegap 媒体声音在 5 次后停止播放

javascript - jQuery Mousemove 向左和向右出现问题

javascript - 是否有任何类似于 Whatever :hover htc? 的 jquery 插件或技术

javascript - 使用 JavaScript 将金额转换为单词

jquery - Select2 取消选择时出错

css - select2如何将文本框和按钮添加到组合框中

jQuery 选择2 : Put selected options to other container

javascript - 声明 JavaScript 成员函数的最佳实践

javascript - 如何知道窗口 "load"事件是否已经触发

jQuery 选择第二次设置错误的值