在制作评论框时,设想将发送评论的按钮设置成:当没有字符输入时(初始状态),按钮不可用,颜色为白色;当评论框内有字符输入时,按钮可用,颜色为橙色。
效果如图:
初始状态,没有输入
输入评论后
由于按钮样式的变化取决于textarea中是否有输入,即$(textarea).val()是否为空
代码如下:
//comment_content_2为textarea的id
$("#comment_content_2").keydown(function(e)
{
var text = $(this).val(),
len = text.length;
if(len == 0)
{
$("#send_btn button").removeClass('send_btn_active');
$("#send_btn button").addClass('send_btn_unactive');
$("#send_btn button").attr('disabled', 'true');
}
else
{
$("#send_btn button").removeClass('send_btn_unactive');
$("#send_btn button").addClass('send_btn_active');
$("#send_btn button").removeAttr('disabled');
}
});
代码实际运行时发现,在输入框内输入字符增加时,按钮变化正常,但是在字符减少时,会出现输入框内已经没有字符时(字符数为0),按钮样式未变化,此时继续按退格键,按钮样式才发生变化。即 输入框内字符在减少到0时,需要继续退一格才可以触发按钮样式变化。
查阅相关的资料后,发现keydown和keyup都可以监听textarea中的输入,于是将上述代码中的keydown改为keyup,达到了预期效果,输入框内字符减少到0时,触发按钮样式变化。