单击时为“输入”字段添加值

时间:2010-04-08 11:11:07

标签: javascript jquery html css jquery-plugins

我在表单上有这个结构,

<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>

单页上有许多表单元素/输入。

4 个答案:

答案 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;
});