优化javascript显示/隐藏单选窗体选项
Refine javascript show/hide radio form options
我有一个表格,如果您通过单选按钮选择是或否,它将提供图像上传或文本区域的替代选项。
我的Js有点不对,不起作用。。。我正在寻求关于我哪里出了问题的建议。。。
<label>Can a Drawing be Supplied:</label><br>
Yes<input type="radio" onclick="javascript:yesnoCheck();" name="yesno" id="yesCheck">
No<input type="radio" onclick="javascript:yesnoCheck();" name="yesno" id="noCheck">
<br>
<div id="ifYes" style="display:none">
Image upload: <input type='file' id='yes' name='yes'><br>
</div>
<div id="ifNo" style="display:none">
If no can you sepcify form and dimensions:<br>
<textarea type='text' id='other3' name='other3'></textarea><br>
function yesnoCheck() {
if (document.getElementById('yesCheck').checked) {
document.getElementById('ifYes').style.display = 'block';
} else document.getElementById('ifYes').style.display = 'none';
}
function yesnoCheck() {
if (document.getElementById('noCheck').checked) {
document.getElementById('ifNo').style.display = 'block';
} else document.getElementById('ifNo').style.display = 'none';
}
以防万一您对纯CSS解决方案感兴趣。删除内联样式,添加以下css。演示。
#ifYes, #ifNo { display: none;}
#yesCheck:checked ~ #ifYes {display: block;}
#noCheck:checked ~ #ifNo {display: block;}
适用于支持:checked
伪类和通用兄弟组合子~
的现代浏览器。
Js中不能有两个同名函数。所以,只保留一个功能,并威胁其中的条件:
function yesnoCheck() {
if (document.getElementById('yesCheck').checked) {
document.getElementById('ifYes').style.display = 'block';
document.getElementById('ifNo').style.display = 'none';
}
else {
//Since it's a radio, if "yes" is not selected, the "no" is
document.getElementById('ifYes').style.display = 'none';
document.getElementById('ifNo').style.display = 'block';
}
}
此外,onclick
事件不需要javascript:
符号。。。它直接调用函数:
<input type="radio" onclick="yesnoCheck();" name="yesno" id="yesCheck">
function yesnoCheck() {
if (document.getElementById('yesCheck').checked) {
document.getElementById('ifYes').style.display = 'block';
} else {
document.getElementById('ifYes').style.display = 'none';
}
if (document.getElementById('noCheck').checked) {
document.getElementById('ifNo').style.display = 'block';
} else {
document.getElementById('ifNo').style.display = 'none';
}
}
首先,您对函数的调用似乎是错误的:
Yes<input type="radio" onclick="yesnoCheck();" name="yesno" id="yesCheck">
然后使用jQuery:
function yesnoCheck() {
if ($("#yesCheck").is('checked')) {
$("#ifYes").show();
}
}
相关文章:
- 如果选择了特定的单选按钮,如何显示窗体
- 选择单选按钮时显示或隐藏窗体
- 多个单选按钮窗体、单个组无法检索值
- 是否可以使用后退按钮保留窗体单选选项
- 使用解释的变量名称循环遍历窗体上的单选按钮
- 在选择单选按钮时绘制窗体
- 如何向窗体动态添加单选按钮
- 检查动态窗体中的单选按钮
- 按类名验证单选按钮的窗体
- 根据从数据库检索到的值,选中窗体上的单选按钮
- 在窗体内选择一类单选按钮
- 单击单选按钮或复选框时,窗体滚动到顶部
- 使用jQuery为单选按钮窗体创建解释框
- 优化javascript显示/隐藏单选窗体选项
- 使用单选框显示和隐藏不同的窗体
- 显示另一组窗体的单选按钮
- 使用无干扰JavaScript的窗体单选按钮
- 在另一个窗体上自动更改单选选项
- 使用带有单选选项的按钮自动填充窗体
- Greasemonkey更改窗体中单选按钮的值