Javascript 输入字段中无法删除的文本
我有一个输入字段,例如Javascript 输入字段中无法删除的文本,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个输入字段,例如 <input type="text" value="static text"> </input> 是否可能无法删除或选择静态文本?这是必需的,以便用户可以在“静态文本”之后输入文本。我建议您这样做(只是HTML和CSS解决方案): 您可以在div中使用两个input标记(其中一个被禁用,用作“静态”文本),类似于: <div id="wrapper"> <input type="text" id="static" v
<input type="text" value="static text">
</input>
是否可能无法删除或选择
静态文本
?这是必需的,以便用户可以在“静态文本”之后输入文本。我建议您这样做(只是HTML和CSS解决方案):
您可以在
div
中使用两个input
标记(其中一个被禁用,用作“静态”文本),类似于:
<div id="wrapper">
<input type="text" id="static" value="fixed" disabled>
<input type="text" id="user">
</div>
编辑:使用Javascript阻止用户选择静态文本:
document.getElementById('static').onselect = function (event) {
event.target.selectionStart = event.target.selectionEnd;
}
思维和Jai有点一样,我只是使用了一个标签,只是个人的预引用
<span class="static_text">Static text </span>
<input type="text" placeholder="your text here..." />
您应该使用两个输入框,使其中一个禁用,另一个保持可编辑状态,并根据需要应用css。
您可以使用javascript的keydown事件允许用户在文本框中键入其他文本,但不允许用户删除固定文本。下面是一个例子
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script>
function ValidateInput(ctrl) {
if (event.keyCode == 8 ||event.keyCode == 46) { //backspace pressed or delete key pressed
//check whether the user is trying to delete the fixed text
if (ctrl.selectionStart <= 4) return false;
}
return true;
}
</script>
</head>
<body>
<input type="text" id="Name" name="Name" value="1234" onkeydown="return ValidateInput(this);"/>
</body>
</html>
函数ValidateInput(ctrl){
如果(event.keyCode==8 | | event.keyCode==46){//按backspace键或delete键
//检查用户是否正在尝试删除固定文本
如果(ctrl.selectionStart
我想这是不可能的:D然后用户可以在静态文本后写一些东西,但仍然可以删除。您可以使用左填充输入字段和带有静态内容文本的背景图像
document.getElementById('static').onselect = function (event) {
event.target.selectionStart = event.target.selectionEnd;
}
<span class="static_text">Static text </span>
<input type="text" placeholder="your text here..." />
input {
display: block;
margin: -1px 0 0 -1px;
border: solid 1px #000;
border-left: none;
outline: none;
height: 18px;
}
.static_text {
padding: 0 5px;
border: solid 1px #000;
border-right: none;
float: left;
}
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script>
function ValidateInput(ctrl) {
if (event.keyCode == 8 ||event.keyCode == 46) { //backspace pressed or delete key pressed
//check whether the user is trying to delete the fixed text
if (ctrl.selectionStart <= 4) return false;
}
return true;
}
</script>
</head>
<body>
<input type="text" id="Name" name="Name" value="1234" onkeydown="return ValidateInput(this);"/>
</body>
</html>
#txt {
border:none;
outline:none;
}
label[for="txt"] {
border:solid 1px #d5d5d5;
padding: 0 0 0 5px;
}