显示基于两个单选按钮的隐藏文本框
Show a hidden text box based on two radio buttons
这些是两个单选按钮和隐藏的文本框以及我尝试使用的脚本 jQuery 但我被困在这里。
$(function () {
$("input[name=size]" && "input[name=color]").click(function () {
if ($("input[name=size]").is("#small") && ($("input[name=color]").is("#green") )) {
$("#itemdv").show();
} else {
$("#itemdv").hide();
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="radio" id="small" name="size" value="20" class="radios1" >
<label for="small"><span></span></label> 1
<input type="radio" id="green" name="color" value="0" class="radios2" >
<label for="green"><span></span></label> 2
<div id="itemdv" style="display: none"> <input type="text" name="amount" id="item" ></div>
首先,您需要为单选按钮使用正确的 HTML。您将不同的名称传递给单选按钮,您需要使两个按钮的名称属性相同。然后使用给定的 jquery 代码。请查看随附的代码片段。
$(function () {
$("input[name=size]").click(function (e) {
let clickedEl = e.target;
if ($(clickedEl).attr("id") === "green") {
$("#itemdv").show();
} else {
$("#itemdv").hide();
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="radio" id="small" name="size" value="20" class="radios1" >
<label for="small"><span></span></label> 1
<input type="radio" id="green" name="size" value="0" class="radios2" >
<label for="green"><span></span></label> 2
<div id="itemdv" style="display: none"> <input type="text" name="amount" id="item" ></div>
这个问题似乎缺少一些信息。因此,我会做一些假设。
第一个假设是您有不同的尺码选择,例如小号、中号和大号。
第二个假设是您有不同的颜色选择,例如红色、绿色、蓝色等
这些假设的原因是您使用的是单选按钮而不是复选框。
单选按钮的工作方式是属性 id
允许单独识别它们;但是,属性 name
将它们组合在一起。
在你的例子中,你似乎有两个组:尺寸和颜色。
const sizeSelector = 'input:radio[name=size]';
const colorSelector = 'input:radio[name=color]';
$(function () {
// We can add the click event to all radio buttons by concatenating
// their selectors with commans.
$(`${sizeSelector}, ${colorSelector}`).click(() => {
toggleWhenSmallAndGreen();
});
});
const SMALL = 20;
const GREEN = 2;
function toggleWhenSmallAndGreen(){
let size = $(`${sizeSelector}:checked`).val();
let color = $(`${colorSelector}:checked`).val();
$('#itemdv').toggle(size == SMALL && color == GREEN);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="radio" id="small" name="size" value="20" class="sizes" />
<label for="small">Small</label>
<input type="radio" id="medium" name="size" value="30" class="sizes" />
<label for="medium">Medium</label>
<input type="radio" id="large" name="size" value="40" class="sizes" />
<label for="large">Large</label>
<br/>
<input type="radio" id="red" name="color" value="0" class="colors" />
<label for="red">Red</label>
<input type="radio" id="blue" name="color" value="1" class="colors" />
<label for="blue">Blue</label>
<input type="radio" id="green" name="color" value="2" class="colors" />
<label for="green">Green</label>
<div id="itemdv" style="display: none">
<input type="text" name="amount" id="item" >
</div>
现在,如果问题是要求在选择绿色和小选项时显示输入,那么单选按钮不是解决办法。您需要使用复选框:
// If we have only these two checkboxes, then we can use the id directly.
const sizeSelector = '#small';
const colorSelector = '#green';
$(function () {
$(`${sizeSelector}, ${colorSelector}`).click(() => {
toggleWhenSmallAndGreen();
});
});
const SMALL = 20;
const GREEN = 2;
function toggleWhenSmallAndGreen(){
let size = $(`${sizeSelector}`).val();
let color = $(`${colorSelector}:checked`).val();
$('#itemdv').toggle(size == SMALL && color == GREEN);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" id="small" name="size" value="20" class="radios1" >
<label for="small">Small</label>
<input type="checkbox" id="green" name="color" value="2" class="radios2" >
<label for="green">Green</label>
<br/>
<div id="itemdv" style="display: none">
<input type="text" name="amount" id="item" >
</div>
如果您有任何疑问或您正在寻找的解决方案是否不同,请告诉我。祝你有个愉快的一天。
这些是两个单选按钮和隐藏的文本框以及我尝试使用的脚本 jQuery 但我被困在这里。
$(function () {
$("input[name=size]" && "input[name=color]").click(function () {
if ($("input[name=size]").is("#small") && ($("input[name=color]").is("#green") )) {
$("#itemdv").show();
} else {
$("#itemdv").hide();
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="radio" id="small" name="size" value="20" class="radios1" >
<label for="small"><span></span></label> 1
<input type="radio" id="green" name="color" value="0" class="radios2" >
<label for="green"><span></span></label> 2
<div id="itemdv" style="display: none"> <input type="text" name="amount" id="item" ></div>
首先,您需要为单选按钮使用正确的 HTML。您将不同的名称传递给单选按钮,您需要使两个按钮的名称属性相同。然后使用给定的 jquery 代码。请查看随附的代码片段。
$(function () {
$("input[name=size]").click(function (e) {
let clickedEl = e.target;
if ($(clickedEl).attr("id") === "green") {
$("#itemdv").show();
} else {
$("#itemdv").hide();
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="radio" id="small" name="size" value="20" class="radios1" >
<label for="small"><span></span></label> 1
<input type="radio" id="green" name="size" value="0" class="radios2" >
<label for="green"><span></span></label> 2
<div id="itemdv" style="display: none"> <input type="text" name="amount" id="item" ></div>
这个问题似乎缺少一些信息。因此,我会做一些假设。
第一个假设是您有不同的尺码选择,例如小号、中号和大号。
第二个假设是您有不同的颜色选择,例如红色、绿色、蓝色等
这些假设的原因是您使用的是单选按钮而不是复选框。
单选按钮的工作方式是属性 id
允许单独识别它们;但是,属性 name
将它们组合在一起。
在你的例子中,你似乎有两个组:尺寸和颜色。
const sizeSelector = 'input:radio[name=size]';
const colorSelector = 'input:radio[name=color]';
$(function () {
// We can add the click event to all radio buttons by concatenating
// their selectors with commans.
$(`${sizeSelector}, ${colorSelector}`).click(() => {
toggleWhenSmallAndGreen();
});
});
const SMALL = 20;
const GREEN = 2;
function toggleWhenSmallAndGreen(){
let size = $(`${sizeSelector}:checked`).val();
let color = $(`${colorSelector}:checked`).val();
$('#itemdv').toggle(size == SMALL && color == GREEN);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="radio" id="small" name="size" value="20" class="sizes" />
<label for="small">Small</label>
<input type="radio" id="medium" name="size" value="30" class="sizes" />
<label for="medium">Medium</label>
<input type="radio" id="large" name="size" value="40" class="sizes" />
<label for="large">Large</label>
<br/>
<input type="radio" id="red" name="color" value="0" class="colors" />
<label for="red">Red</label>
<input type="radio" id="blue" name="color" value="1" class="colors" />
<label for="blue">Blue</label>
<input type="radio" id="green" name="color" value="2" class="colors" />
<label for="green">Green</label>
<div id="itemdv" style="display: none">
<input type="text" name="amount" id="item" >
</div>
现在,如果问题是要求在选择绿色和小选项时显示输入,那么单选按钮不是解决办法。您需要使用复选框:
// If we have only these two checkboxes, then we can use the id directly.
const sizeSelector = '#small';
const colorSelector = '#green';
$(function () {
$(`${sizeSelector}, ${colorSelector}`).click(() => {
toggleWhenSmallAndGreen();
});
});
const SMALL = 20;
const GREEN = 2;
function toggleWhenSmallAndGreen(){
let size = $(`${sizeSelector}`).val();
let color = $(`${colorSelector}:checked`).val();
$('#itemdv').toggle(size == SMALL && color == GREEN);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" id="small" name="size" value="20" class="radios1" >
<label for="small">Small</label>
<input type="checkbox" id="green" name="color" value="2" class="radios2" >
<label for="green">Green</label>
<br/>
<div id="itemdv" style="display: none">
<input type="text" name="amount" id="item" >
</div>
如果您有任何疑问或您正在寻找的解决方案是否不同,请告诉我。祝你有个愉快的一天。