我在网上做了一些狩猎,还没有找到任何具体的答案。 是否可以有一个文本字段,其中的默认文本是不可编辑的?
例如,假设我需要用户输入电话号码。 他们看到的是:
Input Phone Number: ***-***-****
他们可以编辑他们想要的任何星星。但是,即使该字段完全是空的,也不应该删除破折号。
我已经看到输入区域的readonly
和disabled
标记,但这些标记会禁用整个字段。
我希望用户能够输入信息,而不会将我设置的默认字符更改为输入字段。
如果你需要它来试验,这里有一些虚拟代码:
<!doctype HTML>
<html>
<body>
<section>
<article>
<label>Phone Number Entry: </label>
<input type="tel" name="phone" placeholder="123-456-7890"
onkeypress='eval(event)' required/>
</article>
</section>
</body>
</html>
答案 0 :(得分:3)
您可以创建类似于以下内容的虚假输入:
<style>
.fakeInput{
background-color:#FFFFFF;
border:1px solid #CCCCCC;
border-radius:5px;
padding:3px;
width:300px;
}
.fakeInput span{
margin-left:10px;
}
</style>
<p class="fakeInput">Input Phone Number:<span contentEditable="true" onfocus="this.innerHTML=''">123-456-7890</span></p>
然后单击某个元素,从DOM中读取值。
答案 1 :(得分:1)
只是一个建议,但您可以为可编辑区域使用3个单独的文本输入,并使用一些CSS使它们显示为单个输入。然后可能是一个隐藏的输入来保存完整的值,这是必要的。
替代方案是(可能是凌乱的)JavaScript解决方案,您必须跟踪键击和光标位置。
答案 2 :(得分:0)
输入不支持禁用部分区域。您必须使用onkeyup和一些JavaScript代码来检查输入框并在更改时替换内容。
答案 3 :(得分:0)