我在表单上有这个结构,
<input type="test" value="" id="username" />
<span class="input-value">John Smith</span>
<a href="#" class="fill-input">Fill Input</a>
当用户点击填充输入
时来自具有类输入值的span的数据将被添加到值中,单击标记后代码应该如下所示,
<input type="test" value="john Smith" id="username" />
<span class="input-value">John Smith</span>
<a href="#" class="fill-input">Fill Input</a>
单页上有许多表单元素/输入。
答案 0 :(得分:1)
你可以这样做:
$('a.fill-input').click(function() {
$(this).prevAll("input:first").val($(this).prev(".input-value").text());
});
不是只查看类,而是在单击按钮之前查找范围和输入...这意味着无论页面上有多少这样,它都可以工作。
与您的示例不同,该值为John Smith
,其外壳与跨度相同,如果您实际需要小写,请将.text()
更改为.text().toLowerCase()
。< / p>
答案 1 :(得分:0)
$('a.fill-input').click(function() {
$('#username').val($('.input-value.').text());
});
答案 2 :(得分:0)
这应该足以满足您所有结构的所有输入。它不依赖于元素的名称。请注意,prevAll
以相反的顺序返回元素,因此您需要查找第一个输入,而不是前面输入中的最后一个。
$('.fill-input').click( function() {
var $input = $(this).prevAll('input[type=test]:first');
var $value = $(this).prev('span.input-value');
$input.val($value.text());
});
答案 3 :(得分:0)
尝试:
$('a.fill-input').click(function(e){
$('#username').val($('span.input-value').text());
e.preventDefault();
return false;
});