我需要做一些事情(我认为)非常简单,但是我没有jquery的知识,而且它不起作用: 我想在文本输入中显示无线电输入的值(#selected)。
在我的档案中,我有:
<div class="current">
<input id="selected" name="selected" type="text" placeholder="Value1" />
<ul id="test">
<li><label><input type="radio" value="Value1" name="type">Value1</label></li>
<li><label><input type="radio" value="Value2" name="type">Value2</label></li>
</ul>
</div>
<script>
jQuery('label').on('click', function () {
$("selected").text($(this).text());
});
</script>
我想点击标签,因为必须隐藏收音机。
我尝试过很多东西,但它永远不会奏效,有人可以帮助我吗? 预先感谢您的帮助 ! :)
答案 0 :(得分:1)
我建议:
$('input[type="radio"]').on('change', function(){
$('#selected').val(this.value);
});
由于您有label
元素与input
元素相关联,change
事件仍然会被触发(尽管被隐藏)。
为了防止稍后被解雇的change
事件,通过以某种方式取消选中,您可以将上述内容修改为:
$('input[type="radio"]').on('change', function () {
$('#selected').val(this.checked ? this.value : $('input[type="radio"][name="' + this.name + '"]:checked').val());
});
如果已检查(this.value
),则将值设置为已更改元素的值(this.checked
),否则将设置为相同name
的已检查无线电输入的值
参考文献:
答案 1 :(得分:0)
您可以使用:
jQuery('label').on('click', function () {
$("#selected").val($(this).find('input[type=radio]').val());
});
<强> Fiddle Demo 强>
答案 2 :(得分:0)
$('input[type="radio"]').on('change', function(){
if($(this).is(':checked'))
$('#selected').val($(this).val());
});
答案 3 :(得分:0)
您要小心的最重要的事情是不要让您的选择范围太大。如果要在包含其他输入/单选按钮的页面上实现此功能,则可能会意外地在该字段中获取其他值。这是我的建议:
首先,将HTML重组为如下所示:
<div class="current">
<input id="selected" name="selected" type="text" placeholder="Value1" />
<ul id="test">
<li><input type="radio" value="Value1" id="type-value-1" name="type"><label for="type-value-1">Value1</label></li>
<li><input type="radio" value="Value2" id="type-value-2" name="type"><label for="type-value-2">Value2</label></li>
</ul>
</div>
然后你的javascript应该是这样的:
<script>
$('input[name="type"]').change(function(evt) {
$('#selected').val($(this).val());
});
</script>
我能看到的问题是: