禁用编辑文本输入的默认值

时间:2012-12-04 11:32:22

标签: html

我有一个搜索表单

<input id="price_from" value="price from ">
<input id="price_to" value="price to ">
<button>search</button>

如何禁用dafault文本的编辑?当用户开始输入价格金额时,无法编辑“价格从”和“价格到”,但它们会保留在输入字段中。我已经为jquery尝试了不同的掩码插件,但是他们没有显示默认文本,直到你专注于字段而不提供自定义文本选项。只有占位符是一个字符。

5 个答案:

答案 0 :(得分:74)

您可以使用readonlydisabled属性。请注意,禁用时,提交表单时不会提交输入值。

<input id="price_to" value="price to" readonly="readonly">
<input id="price_to" value="price to" disabled="disabled">

答案 1 :(得分:4)

我不确定我是否正确理解了这个问题,但如果你想阻止人们在输入字段中写字,你可以使用disabled属性。

<input disabled="disabled" id="price_from" value="price from ">

答案 2 :(得分:2)

我不认为所有其他的回答者都能正确理解这个问题。该问题需要禁用编辑部分文字。我能想到的一个解决方案是使用固定前缀模拟文本框,该文本框不是textarea或输入的一部分。

这种方法的一个例子是:

<div style="border:1px solid gray; color:#999999; font-family:arial; font-size:10pt; width:200px; white-space:nowrap;">Default Notes<br/>
<textarea style="border:0px solid black;" cols="39" rows="5"></textarea></div>

我最终使用的另一种方法是使用JS和JQuery来模拟&#34;禁用&#34;特征。伪代码示例(不能成为法律问题的具体原因):

  // disable existing notes by preventing keystroke
  document.getElementById("txtNotes").addEventListener('keydown', function (e) {
    if (cursorLocation < defaultNoteLength ) {
            e.preventDefault();
  });

    // disable existing notes by preventing right click
    document.addEventListener('contextmenu', function (e) {
        if (cursorLocation < defaultNoteLength )
            e.preventDefault();
    });

谢谢,Carsten,提到这个问题已经过时了,但我发现这个解决方案可能会在将来帮助其他人。

答案 3 :(得分:1)

可能由于我无法解释的事实,你并不真正理解我的问题。一般来说,我找到了solution

抱歉我的英文

答案 4 :(得分:0)

disabled=disabled

怎么样?
<input id="price_from" value="price from " disabled="disabled">​​​​​​​​​​​​

问题是如果您不希望用户编辑它们,为什么要在输入中显示它们?即使您想提交表单,也可以隐藏它们。要显示信息,请改用其他标签。