gpt4 book ai didi

jQuery onchange 和 if 条件

转载 作者:行者123 更新时间:2023-12-01 05:13:19 24 4
gpt4 key购买 nike

使用此 jquery 时需要一些帮助。我试图在某些条件满足的情况下显示 div id。

我有 2 个下拉框,分别是“远程”和“测试”,其值均为"is"和“否”。

因此,如果远程和测试都没有值,我需要显示文本 1。

如果“远程”为"is"且“测试”为“否”,则文本 2。

如果“远程”为“否”并且“测试”为"is",则文本 3。

如果“远程”为"is"并且“测试”为"is",则输入文本 4。

如果有人可以帮助我编写脚本,我将不胜感激。

我已经设法使其仅在一种条件下工作,但似乎在多种条件下都存在问题。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title> Test </title>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<script>

$("#remote,#test").on("change", function(){
if( $(#remote).val() == "No" && $(#test).val() == "No" ){
$("#show1").show();
$("#show2").hide();
$("#show3").hide();
$("#show4").hide();
} else if ( $(#remote).val() == "Yes" && $(#test).val() == "No" ){
$("#show1").hide();
$("#show2").show();
$("#show3").hide();
$("#show4").hide();
} else if ( $(#remote).val() == "No" && $(#test).val() == "Yes" ){
$("#show1").hide();
$("#show2").hide();
$("#show3").show();
$("#show4").hide();
} else if ( $(#remote).val() == "Yes" && $(#test).val() == "Yes" ){
$("#show1").hide();
$("#show2").hide();
$("#show3").hide();
$("#show4").show();
}
});

</script>
</head>

<body>

<span>Remote</span>
<select id="remote" name="Remote" "value="" >
<option value="No">No</option>
<option value="Yes">Yes</option>
</select> <br>

<span>Test</span>
<select id="test" name="Test" "value="" >
<option value="No">No</option>
<option value="Yes">Yes</option>
</select> <br> <br>

<div id="show1">
Text 1
</div>

<div id="show2" style="display: none">
Text 2
</div>

<div id="show3" style="display: none">
Text 3
</div>

<div id="show4" style="display: none">
Text 4
</div>



</body>

</html>

最佳答案

如果您只需要of/off状态(如果您真的不需要...),请不要使用select
我们为此目的发明了一个更好的用户界面,称为输入复选框

拥有两个复选框及其所有前置突变(总共4) - 您所需要的只是:

二进制到整数的转换

Binary to integer table:

00 = 0
01 = 1
10 = 2
11 = 3

二进制表示两个复选框状态。我们将使用整数作为元素索引。

  • 要获取二进制字符串('00''01' 等),请连接两个复选框checked bool 属性 - 使用一元 + 转换为数字(我们将使用 Array.prototype.reduce )来实现字符串连接。)
  • 现在有了二进制字符串,我们需要一个整数来表示我们想要定位的元素的索引。我们将使用parseInt基数 2
  • 为了最终通过 jQuery 对象集合中的索引来定位特定的 DOM 元素,我们可以使用 .eq() Method

const $ckb = $('#remote, #test')
const $box = $('.box');

$ckb.on('change', function() {

const bin = $ckb.get().reduce((str, el) => str += +el.checked, '');
const idx = parseInt(bin, 2);
$box.hide().eq(idx).show();

});
.box~.box { display: none; }
.noYes +span:after{content:'No';}
.noYes:checked+span:after{content:'Yes';}
<label>
Remote
<input type="checkbox" class="noYes" id="remote" name="Remote">
<span></span>
</label>
<br>
<label>
Test
<input type="checkbox" class="noYes" id="test" name="Test">
<span></span>
</label>

<div id="boxes">
<div class="box">00 = 0 Remote is No and Test is No.</div>
<div class="box">01 = 1 Remote is No and Test is Yes.</div>
<div class="box">10 = 2 Remote is Yes and Test is No.</div>
<div class="box">11 = 3 Remote is Yes and Test is Yes.</div>
</div>


<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

关于jQuery onchange 和 if 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57350914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com