检测文本字段外的点击

5
我有一个提交按钮和一个文本框。我知道如何检测用户何时单击文本框内部。基本上,当用户在文本框内单击时,隐藏文本。
if (submitTextArea.addEventListener) {
  submitTextArea.addEventListener("click", function() {
    if (submitTextArea.value == 'Enter First Name') { //Customize this text string to whatever you want
      submitTextArea.value = '';
    }
  });
}

现在,当用户从文本字段中点击到其他区域时,我想恢复文本。

如何检测文本框外的单击事件?


看起来您正在尝试实现一个占位符。请使用它代替您正在尝试做的事情。如果需要支持旧的浏览器,请应用一个polyfill。 - nickles80
1个回答

10

你要寻找的是一个blur事件。

submitTextArea.addEventListener("blur", function() {
  // code here
});

这里有一个完整的 JavaScript 事件页面,列出了支持它们的浏览器: http://www.quirksmode.org/dom/events/


此外,最好使用 focusblur 事件来完成此任务,以便 click 事件可能用于另外一个动作。

工作fiddle: http://jsfiddle.net/urahara/6nspgrj4/2/

代码:

submitTextArea.addEventListener("focus", function () {
    submitTextArea.value = 'Got focus';
});

submitTextArea.addEventListener("blur", function () {
    submitTextArea.value = 'Lost focus';
});    

你正在处理什么类型的“input”字段?你使用的浏览器是什么?你是否使用任何框架,如 jQuery 等? - Piotr Dajlido
在IE中无法工作 - Jeya Suriya Muthumari

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接