5

我正在尝试为我的网站创建诸如 stackoverflow 之类的标签,我网站上的用户将创建用于过滤结果或许多其他操作(如搜索、专业知识等)的标签。

我能够创建标签,但不能像我们在stackoverflow中那样在输入框中显示它,标签之间的边距存在问题。每次我创建标签时,它都是对齐的,但没有空格或边距。目前它显示所有标签内联没有任何空间。

jQuery 我试过-

$(function () {        
    $("#inputtext").keypress(function (e) {
        var valueofinput = $(this).val();
        if (e.which == 13) {
            $('.tag').html(valueofinput);
            $('.tag').show();
        }
    });

    $('.tag').click(function () {
        $(this).hide();
    });        
});    

但是我尝试在这样的输入标签中显示它-

if(e.which==13)
{
$("#inputtext").val().addClass('tag').css('display','inline-block');
}
if(e.which==32)     //for space
{
$('.tag').css('margin-left','5px');
}

但这不起作用。

提琴手

4

3 回答 3

11

简短的回答:你不能/不要。但是你可以表现出你的样子。

更长的答案:示例

$(function(){    
    $("#inputtext").keypress(function(e){
        var valueofinput= $(this).val();
        if(e.which==13)
        {
            $('#inputtext').before('<span class="tag">' + valueofinput + '</span>');
            $('input').val('');
        }
    });
    $(document).on('click', '.tag', function(){
        $(this).remove();
    });
    $('.inputholder').click(function() { $('#inputtext').focus(); });
});
于 2013-07-30T04:54:39.653 回答
1

您不能在输入标签中插入 div。在stackoverflow中,如果您尝试在输入标签中添加标签,然后右键单击输入标签然后单击检查元素,您将看到他们正在添加跨度标签,但不在输入标签本身内。

<div>
   <span >  //for the tags
  <input />
</div>
于 2013-07-30T04:49:50.223 回答
0
$(function(){
 var oldVal;         
 $("#inputtext").change(function(e){    
       oldVal= $(this).val();    
 });   

 $("#inputtext").keypress(function(e){        
    var valueofinput= $(this).val().replace(oldVal,'');
     if(e.which==13)
    {
        $('.tag').append("<span>"+valueofinput+"</span>&nbsp;");         
        $('.tag').show();
    }        
 });    
});

css

.tag
{
 height:auto;
 width:auto;
 background:white;
 color:white;
 text-align:center;
 display:none;
 position:absolute;
 padding:5px;    
 margin:1em;
}

.tag > span
{
  background:green;
}

http://jsfiddle.net/Hb8yj/14/

于 2013-07-30T05:22:29.517 回答