javascript - 选择其他收音机时显示/隐藏文本区域 - 未触发 jQuery 事件
问题描述
textarea
如果other
未选择该选项,我正在尝试隐藏。我没有收到任何错误,所以我猜语法是正确的,但我猜事件监听器不正确。我也尝试focus()
过代替 the click()
,因为我认为可能input
不会注册为click
. 但这些都没有奏效。
HTML:
<div>
<input type="radio" name="when" value="time" />
<br />
<input type="radio" name="when" value="count" />
<br />
Other:
<input type="radio" name="when" value="other" />
<br />
<textarea name="when_other"></textarea>
</div>
Javascript:
<script type="text/javascript">
$("input[name='when']").click(function() {
if($("input[name='when']").value == 'other'){
$("text[name='when_other']").attr('display', 'block');
} else {
$("text[name='when_other']").attr('display', 'none');
$("text[name='when_other']").html('');
}
});
</script>
上面也是标记出现的顺序,HTML在前,JS在尾。页面上也没有动态内容,所以live()
/on()
我认为不需要。
解决方案
你的代码有一些小错误,比较一下:
textarea {display:none;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<input type="radio" name="when" value="time" />
<br />
<input type="radio" name="when" value="count" />
<br />
Other:
<input type="radio" name="when" value="other" />
<br />
<textarea name="when_other"></textarea>
</div>
<script type="text/javascript">
$("body").on("click","input[name='when']",function() {
if($("input[name='when']:checked").val()== 'other'){
$("textarea[name='when_other']").css('display', 'block');
} else {
$("textarea[name='when_other']").css('display', 'none');
$("textarea[name='when_other']").val('');
}
});
</script>
推荐阅读
- c++ - C ++:用相同类型的新对象替换std :: vector“就地”中的对象,但保留对该对象的引用
- npm-live-server - Live-Server 扩展 VS 代码不起作用
- python - 如何选择所有标签HTML
- amazon-web-services - Amazon RDS 和 VPC 终端节点连接
- vue.js - 具有计算属性的 href 中的值不是动态的
- docker - 如何在两个服务之间共享 docker 卷,其中一个是事实来源?
- python - 并行化pytorch中的嵌套for循环
- python - python:pyti平均真实范围函数输入的列表结构
- django - django rest框架知道视图是类还是函数
- php - 如何使用 Laravel 在数据库中搜索未知的属性名称