Javascript 当2个选项具有特定值时显示div

Javascript 当2个选项具有特定值时显示div,javascript,jquery,html,Javascript,Jquery,Html,我有两个下拉菜单: <select name="name_1" id="name_1"> <option value="Y" selected="selected">Option 1</option> <option value="N">Option 2</option> </select> <select name="name_2" id="name_2"> <option va

我有两个下拉菜单:

<select name="name_1" id="name_1">
    <option value="Y" selected="selected">Option 1</option>
    <option value="N">Option 2</option>
</select>

<select name="name_2" id="name_2">
    <option value="Y" selected="selected">Option 1</option>
    <option value="N">Option 2</option>
</select>

知道我做错了什么吗?通知根本不显示。

是的,您正在检查两个select是否只有一次正确值(当脚本第一次运行时)

这样做:

var name_1;
var name_2;

$('#name_1').on('change'), function () {
    name_1 = $(this).val();
    toggleNotification();

}
$('#name_2').on('change'), function () {
        name_2 = $(this).val();
        toggleNotification();
}

$('#notification').hide();

function toggleNotification() {
  if (name_1 == 'Y' && name_2 == 'N') {
    $('#notification').show();
  } else {
    $('#notification').hide();
  }
}
每当您选择的某个更改时,它都会检查是否应该显示或隐藏div。

我会这样做(请注意,将布尔值传递给
.toggle()
将确定状态):

$('#name_1,#name_2')。在('change',function()上{
$(“#通知”)。切换($(“#名称#1”).val()+$(“#名称#2”).val()==='YN')
}).触发(“变更”)

选择1
选择2
选择1
选择2

警告消息
您可以为通知显示创建一个单独的功能,然后在两个
选择的
上调用它:

$('#name_1, #name_2').on('change', display_notification);
使用单独函数的代码段:
$(“#通知”).hide();
$(“#名称#1,#名称#2”)。在('change',display#u通知)上;
函数显示_通知(){
如果($('#name_1').val()='Y'&&$('#name_2').val()='N'){
$(“#通知”).show();
}否则{
$(“#通知”).hide();
}
}

选项Y
选项N
选项Y
选项N



通知
这是因为当页面第一次加载时,应该显示通知的代码只运行一次

为了确保每次用户更改其中一个下拉列表时都会运行代码,您可以创建一个单独的函数来执行如下检查:

var name_1;
var name_2;

$('#name_1').on('change'), function () {
    name_1 = $(this).val();
    toggleNotification();

}
$('#name_2').on('change'), function () {
        name_2 = $(this).val();
        toggleNotification();
}

$('#notification').hide();

function toggleNotification() {
  if (name_1 == 'Y' && name_2 == 'N') {
    $('#notification').show();
  } else {
    $('#notification').hide();
  }
}
$('name_1')。在('change',checkValues)上;
$('#name_2')。on('change',checkValues);
函数checkValues(){
如果($('#name_1').val()='Y'&&$('#name_2').val()='N'){
警惕(“你被警告了!”);
}
}

选择1
选择2
选择1
选择2

您的代码几乎没有问题

1:更改时的语法不正确

 $('#name_1').on('change'), function () {}
应该是

$('#name_1').on('change', function () { });
2:您正在检查页面加载上的值,并在更改事件上分配值

3:内部更改事件侦听器this.val应为$(this.val()

尝试如下更改代码

var name_1=$('#name_1').val();
var name_2=$('#name_2').val();
$('#name_1')。on('change',function(){
name_1=$(this.val();
检查();
});
$('#name_2')。on('change',function(){
name_2=$(this.val();
检查();
});
$(“#通知”).hide();
函数检查(){
如果(name_1=='Y'&&name_2=='N'){
$(“#通知”).show();
}否则{
$(“#通知”).hide();
}
}

选择1
选择2
选择1
选择2
我

我认为您的解决方案是正确的,因为使用
display\u notification
功能的代码效率更高。谢谢
 $('#name_1').on('change'), function () {}
$('#name_1').on('change', function () { });