2012-09-25 33 views
1

我有一个文本框,可以从用户处获取多个电子邮件ID。并在工具提示中显示它,但我需要在新行上显示每个电子邮件(用逗号分隔)。
为此,需要检测逗号&添加新行字符。jquery:如何在逗号发生时向文本添加新行

HTML是

<input type="text" id="email"> <div id="ttip"></div> 

jQuery的工具提示

$("#email").keyup(showTooltip); 

var showTooltip = function(e) { 
    var tooltip = $(this).val(); 
    if (tooltip == '') { 
     hideTooltip(); 
    } else if (e.which == 188) { 
     tooltip += "<br>"; 
     $("#ttip").fadeIn().html(tooltip); 
    } else { 
     $("#ttip").fadeIn().html(tooltip); 
    } 
}​ 

所以,当我的提示是DIV显示它没有检测<br>,它是显示在同一行。
我该如何解决它?

+0

也许它没有工作因为你有
而不是
? –

+0

我试过'
' –

回答

5

尝试:

$("#email").keyup(showTooltip); 

      var showTooltip=function(e){ 
      var tooltip=$(this).val(); 
        if(tooltip ==''){ 
          hideTooltip(); 
        }else if(e.which == 188){ 
          tooltip = tooltip.replace(/,/g,"<br />"); 
          $("#ttip").fadeIn().html(tooltip); 
        }else{    
          $("#ttip").fadeIn().html(tooltip); 
        } 
      } 
+0

我会使用'/,/ g'来取代所有的逗号 – CaffGeek

+0

你知道替换返回一个字符串。它实际上并没有改变旧的字符串。 –

+0

@CaffGeek我会编辑谢谢 –

1

你每次都撤销之前所做的更改。 在替换值之前,不要检查是否输入了逗号。

var showTooltip = function(e) { 
    var tooltip = $(this).val(); 
    if (tooltip == '') { 
     hideTooltip(); 
    } else { 
     tooltip = tooltip.replace(/,/g, '<br />'); 
     $("#ttip").fadeIn().html(tooltip); 
    } 
} 
$("#email").keyup(showTooltip);​ 

查看这里:http://jsfiddle.net/lnrb0b/NK65G/ (我注释掉hideTooltip(),因为我不具备的功能)

+0

+1我有几乎相同的东西.. –

+0

这就是它。谢谢@Inrbob –

1

所以此工程:http://jsfiddle.net/ZgmFw/4/

var showTooltip = function(e) { 
    var tooltip = $(this).val(); 
    if (tooltip == '') { 
     hideTooltip(); 
    } else { 
     $("#ttip").html(tooltip.replace(/,/g, "<br />")).fadeIn(); 
    } 
} 


$("#email").keyup(showTooltip);​