javascript - 为什么这段代码不隐藏复选框?

标签 javascript jquery html css

我只想在某个其他复选框被选中时在表单中显示一些输入复选框。

我读过有关 .show() 和 .hide() 的内容,但我想更改 css 选择器。

我的问题是隐藏的选择器根本没有隐藏:它是在不考虑复选框的情况下打印出来的。

请注意,这只是一个测试,我正在学习 jQuery 并想尝试一下。

这是我试过的(JSfiddle)

HTML 格式:

<form name="ejemplo">
    <input type="checkbox" name="checkbox1" id="idCheckbox1" value="check" checked>Sí? &nbsp; &nbsp;
    <input type="checkbox" name="checkbox2" id="idCheckbox2" value="check">No &nbsp; &nbsp;
    <div id="ocultar">
        <input type="checkbox" name="checkbox3" id="idCheckbox3" value="check">Tal Vez</div>
</form>

JS

    //Usamos jQuery para mostrar un elemento condicionalmente
   if ( $("input:checkbox[id=idCheckbox2]:checked") ) 
       $("#ocultar").css("display","inline");
    else
       $("#ocultar").css("display","none");

最佳答案

由于 id 是唯一的,您可以使用

$("#idCheckbox2") 

代替

$("input:checkbox[id=idCheckbox2]")

要检查复选框是否被选中,您可以使用 .is() :

if($("#idCheckbox2").is(":checked"))
    $("#ocultar").css("display","inline");
else
    $("#ocultar").css("display","none");

您还需要使用 .change() 当您的复选框被更改并使用三元运算符缩短您的代码时跟踪的事件:

$('#idCheckbox2').change(function () {
    $("#ocultar").css("display", this.checked ? 'inline' : "none");
}).change();

末尾的 .change() 用于在页面加载时触发 change() 事件,并在您的复选框默认选中时执行代码。

Fiddle Demo

关于javascript - 为什么这段代码不隐藏复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22446383/

相关文章:

javascript - Html5 Canvas Javascript 库?

html - :hover not rendering correctly in Safari

html - 如何使我的 <aside> 与主要部分高度相同?

html - Bootstrap3 1 行有无限列是否有效?

javascript - ASP.NET 在部分回发后获取隐藏字段的值

javascript - 将类应用于动态放置的矩形

javascript - 是否有等效于 urllib.quote 和 urllib.unquote 的 Javascript?

javascript - 在 javascript 中使用 "new"

jquery - 从 JSON 更新 Django 中的数据表

javascript - jQuery DatePicker 上的 Destroy 方法删除了 DatePicker,但是当我重新实例化一个新的时,仍然选择了先前选择的 Date 值