我在contenteditable
上使用<div>
属性,以便根据需要将其作为文本字段(供用户重命名)。但我也希望在其上启用autofocus
,这样用户就可以立即开始输入(<div>
最初始终启用contenteditable
。
这是否有效和/或可能?或者我是否必须切换到标准文本输入?
答案 0 :(得分:14)
我想在大多数浏览器中都必须使用JavaScript。它不会在iOS上工作,它只允许在真实用户交互的事件处理程序中编程使用focus()
(例如click
或触摸相关事件)。
另外,请注意,如果页面上还有其他输入,则用户可能会在文档完全加载之前关注其中一个输入,在这种情况下,用户可能会非常烦恼当load
事件触发时,焦点已从它们下方移开,因此您应该使用输入&#39;要跟踪此事件的focus
事件。
<div contenteditable="true" id="editable"></div>
<script type="text/javascript">
window.onload = function() {
document.getElementById("editable").focus();
};
</script>
答案 1 :(得分:1)
对于未来的观众:
我想我可能会有一个更优雅的解决方案。
$(window).on("load", function() {
$("[autofocus]").focus();
});
所以,一旦页面加载...... BAM jQuery专注于具有'autofocus'属性的元素!
您可以使用选择器来获得您想要的内容。