将标签文本复制到输入
copy label text to input
我已经尝试了几种方法来实现这一目标,但不知何故没有任何效果。
如何将用户选择的相应单选按钮的"标签文本"实时复制到输入字段(结果框)中?
.HTML-
<ul class="gfield_radio" id="input_4_4">
Radio Buttons:
<br />
<li class="gchoice_4_0">
<input name="input_4" type="radio" value="2" id="choice_4_0" class="radio_s" tabindex="4">
<label for="choice_4_0">Hi</label>
</li>
<li class="gchoice_4_1">
<input name="input_4" type="radio" value="4" id="choice_4_1" class="radio_s" tabindex="5">
<label for="choice_4_1">Hello</label>
</li>
<li class="gchoice_4_2">
<input name="input_4" type="radio" value="3" id="choice_4_2" class="radio_s" tabindex="6">
<label for="choice_4_2">Aloha</label>
</li>
</ul>
<br />
<div class="ginput_container">
Result Box:
<br />
<input name="input_3" id="input_4_3" type="text" value="" class="medium" tabindex="3">
</div>
我的尝试:
$('input').change(function() {
if (this.checked) {
var response = $('label[for="' + this.id + '"]').html();
alert(response);
}
// also this:
// if ($("input[type='radio'].radio_s").is(':checked')) {
// var card_type = $("input[type='radio'].radio_s:checked").val();
// alert('card_type');
// }
});
您需要
从单击的无线电遍历 DOM 以找到最近的label
元素。
$('.radio_s').change(function() {
$('#input_4_3').val($(this).closest('li').find('label').text());
});
示例小提琴
但是,您也可以使用$(this).next('label')
,它依赖于label
元素的位置不变。我的第一个示例意味着label
可以位于与单选按钮相同的li
内的任何位置,并且它将起作用。
试试这个:
$('.radio_s').click(function() {
$("#input_4_3").val($("input:checked" ).next().text());
});
演示:http://jsfiddle.net/WQyEw/3/
这是一个有点棘手的问题,很难回答。HTML 的结构意味着页面上可能有多个这些结构。因此,您可能有多个带有相应复选框的单选按钮集。
我已经将一些工作代码放入jsFiddle中。
我做了一个更改:您在问题中的所有代码现在都在<div class="container">
.您需要与单选按钮和复选框组一样多的单选按钮和复选框。
然后你可以有这样的jQuery代码:
$('ul.gfield_radio').on('change', 'input[type="radio"]', function () {
var label = $('label[for="' + this.id + '"]');
$(this).closest('.container').find('input.medium').val(label.text());
});
此代码不绑定到此特定 HTML 位中的id
值,但会在整个页面中根据需要多次工作。
当你可以用纯JavaScript实现它时,为什么要依赖第三方库:
<script>
document.addEventListener('DOMContentLoaded', function () {
var a = document.getElementsByName('input_4');
for (var i = 0; i < a.length; i++) {
document.getElementsByName('input_4')[i].addEventListener('change', function () {
showValue(this);
}, false);
}
}, false);
function showValue(element) {
alert(element.parentNode.getElementsByTagName('label')[0].innerHTML)
}
</script>
相关文章:
- 如何将键入的文本从一个输入类型的文本复制到另一个
- 将用户电子邮件输入字段复制到用户名字段中(去除包括“@”和之后的所有内容)
- 复制表单输入字段'提交前的s值
- 如何找到表单中的所有输入字段,并使用Javascript将它们的值复制到文本区域
- 无法使用javascript将Img-src复制到隐藏的输入值
- 当通过javascript而不是按键/复制/粘贴更新文本输入时使用的事件处理程序
- 复选框,将所有已完成的输入字段复制到下面的字段
- 将html输入文件元素从一个表单复制到另一个表单
- 尝试复制粘贴输入字段的值时:无法读取属性'nodeType'的未定义
- 如何使用“输入属性更改”事件来捕获鼠标复制和粘贴
- 如何通过单击复选框将文本元素从输入复制到另一个输入
- 选择并输入复制到一个输入中进行过帐
- 如何使用javascript使用链接将值从一个文本输入复制到另一个
- 使用javascript将值从一个输入复制到多个输入
- 将字段输入复制到另一个字段输入
- JQuery不能从一个输入复制到另一个输入
- JavaScript简单的从输入复制到span
- 将表单输入复制到另一个表单
- 同时从用户输入复制文本到文本区域
- 如何从表单中的所有输入复制自定义属性,然后再赋值回来