У меня есть элемент <input>
html. Элемент заполняется значением по умолчанию. Пользователь должен иметь возможность добавлять новый текст в конце текста по умолчанию, но не может удалить значение по умолчанию. Как я могу решить эту проблему?Добавить текст в <input> элемент, но не удаляйте его
ответ
Вы можете сделать это с помощью 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);
}
}
я поставил в jsFiddle здесь: http://jsfiddle.net/sjfwz/
Он работает. Спасибо – Martynas
Добро пожаловать! –
попробовать этот
скрипт:
<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>
Вы могли бы также сравните входное значение с шаблоном регулярного выражения на ke событие ydown. Затем вы можете отменить нажатие клавиши, например, backspace, если регулярное выражение не совпало.
Если вы не хотите создавать сложные JS, вы можете просто использовать фоновое изображение с некоторым дополнением.
Я бы отобразил текст по умолчанию как текст _before_ '' и сделайте вход опционным. Вы можете использовать CSS, чтобы придать тексту эффект, поскольку он будет непосредственно связан с полем ''. – Jona
Определенно было бы лучшим решением. Кроме того, вам нужно проверить pressUp, а затем посмотреть, содержит ли строка ввода «значение по умолчанию», если не заменить содержимое «значением по умолчанию». –