2010-04-08 27 views
0

我有形式这样的结构,添加值到输入字段上点击

<input type="test" value="" id="username" /> 

<span class="input-value">John Smith</span> 

<a href="#" class="fill-input">Fill Input</a> 

当上的填充输入用户点击,

从跨度已经类的输入值将被添加的数据在点击标签后代码应该看起来像这样,

<input type="test" value="john Smith" id="username" /> 

    <span class="input-value">John Smith</span> 

    <a href="#" class="fill-input">Fill Input</a> 

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

回答

1

你可以这样说:

$('a.fill-input').click(function() { 
    $(this).prevAll("input:first").val($(this).prev(".input-value").text()); 
}); 

而不是寻找只为类,这看起来对于跨度和输入刚才您点击......这意味着它没有按钮之前关于你在页面上有多少这些。

不像你的例子,但值将是John Smith,与在跨度中具有相同的外壳,如果你真的想要小写,请将.text()更改为.text().toLowerCase()

0
$('a.fill-input').click(function() { 
    $('#username').val($('.input-value.').text()); 
}); 
+0

必须说,这是jQuery代码。在http://jquery.com上获取jQuery。 从http://docs.jquery.com/Downloading_jQuery开始。 jQuery文档位于http://api.jquery.com。 编辑:由于这是标签jQuery的作者很可能知道jQuery,但我让信息持续存在。 – joar 2010-04-08 11:18:46

+2

这个问题被标记为jQuery。毫无意义的评论。 – 2010-04-08 11:25:42

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()); 
}); 
0

尝试:

$('a.fill-input').click(function(e){ 
    $('#username').val($('span.input-value').text()); 
    e.preventDefault(); 
    return false; 
}); 
相关问题