2015-07-18 81 views
0

我想在输入字段提交后加粗输入字段的值。这是结果我得到的,当我使用.bold()Bolding输入字段值

http://puu.sh/j4e35/b77ea3f62e.png

为什么这样做的,我怎样才能大胆呢?

<body> 
<h1 id="header"> 
    Socket.IO Chat 
</h1> 
<div id="message-box"> 
    <ul id="messages"></ul> 
</div> 
<div id="chat-box"> 
    <form action="" id="username-form" align="center"> 
     <input placeholder="Enter your nickname" autocomplete="off" id="nickname"> 
    </form> 
    <form action="" id="client-input" align="center"> 
     <input placeholder="Press enter to send a message..." autocomplete="off" id="m"> 
    </form> 
</div> 
<script> 
var socket = io(); 
var nickname; 

$(document).ready(function(){ 
    $('#client-input').hide(); 
    $('#username-form').submit(function(){ 
     $('#nickname').hide(); 
     $('#client-input').show(); 
     return false; 
    }); 
}); 

$('#client-input').submit(function(){ 
    if($('#m').val().trim().length == 0){ 
     null; 
    } 
    else{ 
     socket.emit('chat message',$('#nickname').val().bold() + ': ' + $('#m').val()); 
     $('#m').val(''); 
    } 
    return false; 
}); 

socket.on('chat message', function(msg){ 
    $('#messages').prepend($('<li>').text(msg)); 
}); 

</script> 

+0

只需添加这个CSS规则:'#nickname {字体重量:大胆的; }'。 '.bold' [不是标准方法,不会自动加粗文本](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/bold)。 –

回答

2

.bold()方法并不能使文本加粗,它只是把给定的字符串周围<b>标签。在输入字段中,实际上您会在字符串周围看到这些标签,因为它是预先格式化的。

而是使用JavaScript来改变输入字段的CSS以粗体显示其内容:

$('#nickname').css('font-weight', 'bold'); 
0
$('<li>').text(msg) 

创建一个li元素,并将其文本内容。你想设置html内容。

$('<li>').html(msg) 

但是,这将是非常危险的(xss注射)。相反,你应该同时发送姓名和消息数组或对象到服务器:

socket.emit('chat message', [$('#nickname').val(), $('#m').val()]); 
... 

socket.on('chat message', function(data){ 
    var line = $('<li>'); 
    $('<b>').text(data[0]).appendTo(line); //name 
    $('<span>').text(data[1]).appendTo(line);//msg 
    $('#messages').prepend(line); 
}); 
0

做到这一点,最好的方式是使用CSS,它实际上是一个更容易比你做它。您可以将CSS右键插入表单元素,但我实际上建议使用外部样式表并将其与ID关联。

#elementID { 
font-weight: bold; 
} 

人似乎并没有意识到,你可以使用表单元素的CSS样式就像任何其他的元素,在PHP中正确插入代码或JavaScript能够创建问题的潜力,至少从我的经验。

0

添加字体重量的唯一问题:bold; CSS部分#nickname对象的内部是它将输入字段中的文本加粗,而不是客户端在输入字段中提交的内容。它看起来像这样

http://puu.sh/j4o2I/3560618f4b.png