我在表单上有一个文本区域和一个“添加”按钮。默认情况下,文本区域显示为缩小和灰显。在焦点上,它将通过改变样式来突出显示。在模糊时,它应该回到以前的状态。在突出显示textarea的同时,添加注释应切换为可见和隐藏。问题是,当我在文本区域中输入数据并单击添加按钮时,模糊事件隐藏了添加按钮,并且永远不会触发添加按钮上的事件..任何解决方案?
似乎我的问题不明确...... 解决方案类似于执行模糊事件,除了下一个聚焦元素不是“添加”按钮...
答案 0 :(得分:6)
如果输入的文字是否可以安全地假设您不想切换按钮,因为用户有意输入注释?如果是这样,你可以做类似的事情:
$(textBox).blur(function() {
if($(this).val().length == 0) {
//change the style
//hide the button
}
})
答案 1 :(得分:1)
只有在textarea 中没有输入任何内容时,您才需要取消高亮显示您的textarea并隐藏“添加”按钮:
$('textarea').blur(function() {
if($(this).val() != '') {
// unhighlight textarea
// hide "add" button
}
});
这样,无论是否有焦点,用户总是会看到字段和按钮,无论它是否有焦点。
答案 2 :(得分:0)
在离开文本框的焦点和隐藏按钮之间稍微延迟,例如
function textBox_blur(evt)
{
window.setTimeout(
function() { button.style.display = 'none'; },
200 // length of delay in milliseconds
);
}
这将为点击处理留出足够的时间(尽管您可能希望使用延迟的长度)