继续将链接值附加到输入框

时间:2014-04-08 02:29:05

标签: javascript jquery inputbox

我想知道如何将链接值附加到输入框。但我无法弄清楚如何将新的链接值附加到旧的链接值,用空格 [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);

您的帮助将不胜感激。

4 个答案:

答案 0 :(得分:2)

你可以这样使用,

 $('.special_field_link').click(function (e) {
    e.preventDefault();
    $('#a_input_id').val($('#a_input_id').val()+" "+$(this).html());
});

使用event.preventDefault()来阻止锚点的默认点击事件。在每次单击时,如果要保留当前输入值,则需要获取当前输入值。在你的代码中,它用新值覆盖旧代码。

Fiddle

答案 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;                                 
     });
});
相关问题