我想知道如何将链接值附加到输入框。但我无法弄清楚如何将新的链接值附加到旧的链接值,用空格 [Fiddle]分隔。
<input id="a_input_id" type="text">
<a href="" class="special_field_link">@ABC<a>
<a href="" class="special_field_link">@DEF<a>
<script>
$(function(){
$('.special_field_link').live('click', function()
{
$('#a_input_id').val($(this).html() + '');
return false;
});
});
我应该使用类似的东西:
var cur_val = $('#a_input_id').val($(this).html() + '');
if(cur_val)
$('#a_input_id').val(cur_val + "," + new_val);
else
$('#a_input_id').val(new_val);
您的帮助将不胜感激。
答案 0 :(得分:2)
你可以这样使用,
$('.special_field_link').click(function (e) {
e.preventDefault();
$('#a_input_id').val($('#a_input_id').val()+" "+$(this).html());
});
使用event.preventDefault()来阻止锚点的默认点击事件。在每次单击时,如果要保留当前输入值,则需要获取当前输入值。在你的代码中,它用新值覆盖旧代码。
答案 1 :(得分:1)
$(function(){
$('.special_field_link').live('click', function()
{
$('#a_input_id').val($('#a_input_id').val() + $(this).html() + '');
return false;
});
});
要使用最佳实践,最好为锚点缓存jquery对象,并避免使用return false。
$(function(){
var txt$ = $('#a_input_id');
$('.special_field_link').live('click', function()
{
txt$.val(txt$.val() + $(this).html());
event.preventDefault();
});
});
答案 2 :(得分:1)
如果你想附加值,你可以这样做:
var input = $('#a_input_id');
input.val(input.val() + $(this).html());
请注意.live
不推荐使用,如果切换到新版本的jQuery,最好使用.on
。
<强> THE DEMO. 强>
答案 3 :(得分:1)
你可以选择:
http://fiddle.jshell.net/s8nUh/149/
$(function()
{
$('.special_field_link').live('click', function()
{
var original = $('#a_input_id').val();
var val = original + ',' + $(this).html();
val = val.replace(/(^,)|(,$)/g, "");
$('#a_input_id').val(val);
return false;
});
});