Javascript 将文本添加到<;输入>;元素但不';不要删除它

Javascript 将文本添加到<;输入>;元素但不';不要删除它,javascript,html,input,Javascript,Html,Input,我有一个html元素。 该元素由默认值填充。 用户应该能够在默认文本的末尾追加新文本,但不能删除默认值。 我怎样才能解决这个问题?试试这个 脚本: <script type="text/javascript"> function MyFunction() { document.getElementById('TextBox3').value = document.getElementById('defaultValue').value;

我有一个
html元素。 该元素由默认值填充。 用户应该能够在默认文本的末尾追加新文本,但不能删除默认值。 我怎样才能解决这个问题?

试试这个

脚本:

   <script type="text/javascript">
    function MyFunction() {

        document.getElementById('TextBox3').value = document.getElementById('defaultValue').value;

        //if asp:textbox control should be work below
        document.getElementById('<%=TextBox4.ClientID%>').value = document.getElementById('defaultValue').value;

    }

</script>
    }


<body onLoad="javascript:MyFunction();">
<input type="hidden" id="defaultValue" name="defaultValue" value="defaultValue"/>
<input type="text" id="TextBox3" />
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
</body>

函数MyFunction(){
document.getElementById('TextBox3')。value=document.getElementById('defaultValue')。value;
//如果asp:textbox控件应在下面工作
document.getElementById(“”).value=document.getElementById('defaultValue').value;
}
}

您可以使用JavaScript执行此操作:

listen('load', window, init);

function init() {
  var test = document.getElementById('test');
  var val = test.value;
  listen('keydown', test, replaceVal);
  listen('keyup', test, replaceVal);
  function replaceVal() {
    tempVal = test.value;
    if (tempVal.indexOf(val) === -1) {
      tempVal = val;
      test.value = val;
    }
  }
}

function listen(event, elem, func) {
  if (elem.addEventListener) {
    elem.addEventListener(event, func, false);
  } else if (elem.attachEvent) {
    elem.attachEvent('on' + event, func);   
  }
}
我在这里设置了一个JSFIDLE:

您还可以将输入值与keydown事件上的正则表达式模式进行比较。如果正则表达式不匹配,您可以拒绝按键,例如退格。

如果您不想做一些复杂的JS,您可以使用带有一些填充的背景图像。

我会将默认文本显示为
之前的文本,并使输入可选。您可以使用CSS使文本具有直观性,因为它将直接连接到
字段。这无疑是最好的解决方案。否则,您需要检查按UP键,然后查看输入字符串是否包含“默认值”,如果不包含,则将内容替换为“默认值”。