在页面加载时显示与单选按钮匹配的文本字段
Display text field that matches radio button when page loads
默认情况下,第一个单选按钮将被选中,显示第一个文本字段,并隐藏其余的。但有时,如果我编辑内容,第二个或第三个单选按钮将被选中。如果是这种情况,结果是相同的,第一个文本字段显示,其他文本字段隐藏。
我知道它为什么这样做了,因为click()
。我已经尝试了使用change()
的不同方法,但当然也可以工作。
这里是JSFiddle: http://jsfiddle.net/cEaeK/220/
HTML:<table width="100">
<tr>
<td>
<input type="radio" name="example" value="radio_1" id="example_1" class="radio_buttons" required />
Radio 1
</td>
</tr>
<tr>
<td>
<input type="radio" name="example" value="radio_2" id="example_2" class="radio_buttons" required checked="checked" />
Radio 2
</td>
</tr>
<tr>
<td>
<input type="radio" name="example" value="radio_3" id="example_3" class="radio_buttons" required />
Radio 3
</td>
</tr>
</table>
<ul>
<li id="field1">
<div>Radio 1:</div>
<input type="text" name="field1" placeholder="" />
</li>
<li id="field2">
<div>Radio 2:</div>
<input type="text" name="field2" placeholder="" />
</li>
<li id="field3">
<div>Radio 3:</div>
<input type="text" name="field3" placeholder="" />
</li>
</ul>
JQuery: $("#field2, #field3").css("display","none");
$(".radio_buttons").click(function(){
if ($('input[name=example]:checked').val() == "radio_1") {
$("#field1").css("display", "block");
$("#field2").css("display", "none");
$("#field3").css("display", "none");
}
if ($('input[name=example]:checked').val() == "radio_2") {
$("#field1").css("display", "none");
$("#field2").css("display", "block");
$("#field3").css("display", "none");
}
if ($('input[name=example]:checked').val() == "radio_3"){
$("#field1").css("display", "none");
$("#field2").css("display", "none");
$("#field3").css("display", "block");
}
});
这将在您的场景中工作:
// A function to check the items.
function checkFields(el) {
// The radio value.
var sel = $(el).val();
// Toggle the fields visibility accordingly.
$("#field1").toggle(sel == "radio_1");
$("#field2").toggle(sel == "radio_2");
$("#field3").toggle(sel == "radio_3");
}
$(function () {
// On page load you call the checking passing the radio that's
// checked by default.
checkFields($(".radio_buttons:checked"));
// When a radio is clicked, call that same function.
$(".radio_buttons").on("click", function () { checkFields(this); });
});
演示我想这样做:
$('li:not(:first)').hide();
$(".radio_buttons").click(function () {
$('li').hide();
$('#field' + $(this).val().split('_')[1]).show()
});
$(".radio_buttons:checked").click();
<<p> jsFiddle例子/strong> 相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 当设置addFromAutocompleteOnly时,剩余文本将保留在输入字段中
- 使用jquery将输入字段转换为文本
- 如何从查询字符串中的输入字段发回文本
- 表单输入字段随着溢出的文本而增长
- 使用单个文本框向多个字段添加严格搜索
- 使用javascript提交表单并从字段/单选框/复选框/文本区域获取数据
- 使用jQuery的输入字段文本换行
- 向使用jQuery加载DOM后添加的字段添加不受限制的文本输入DatePickers
- 当用户单击按钮(在光标位置)时,在输入字段中添加一个文本字符串
- 如何根据文本长度立即显示和隐藏字段?-JQuery
- 如何使文本、数字和日期html输入字段以一致的方式支持Ctrl+Z(撤消)
- 模拟文本输入字段上的退格键
- 输入字段中的可持续文本
- 未获取文本输入字段的值
- 没有文本安全性的密码字段
- 将禁用的输出字段更改为带前缀的文本
- 为什么 react 将输入[类型=“文本”] 字段设为只读,除非我提供 onChange 回调
- 使用SAPUI5中的“文本”字段显示正确的“日期”
- Kendo,如何将MVVM文本:字段绑定到远程DataSource