2012-03-07 10 views
2

У меня есть элемент <input> html. Элемент заполняется значением по умолчанию. Пользователь должен иметь возможность добавлять новый текст в конце текста по умолчанию, но не может удалить значение по умолчанию. Как я могу решить эту проблему?Добавить текст в <input> элемент, но не удаляйте его

+8

Я бы отобразил текст по умолчанию как текст _before_ '' и сделайте вход опционным. Вы можете использовать CSS, чтобы придать тексту эффект, поскольку он будет непосредственно связан с полем ''. – Jona

+0

Определенно было бы лучшим решением. Кроме того, вам нужно проверить pressUp, а затем посмотреть, содержит ли строка ввода «значение по умолчанию», если не заменить содержимое «значением по умолчанию». –

ответ

2

Вы можете сделать это с помощью 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/

+0

Он работает. Спасибо – Martynas

+0

Добро пожаловать! –

0

попробовать этот

скрипт:

<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> 
0

Вы могли бы также сравните входное значение с шаблоном регулярного выражения на ke событие ydown. Затем вы можете отменить нажатие клавиши, например, backspace, если регулярное выражение не совпало.

0

Если вы не хотите создавать сложные JS, вы можете просто использовать фоновое изображение с некоторым дополнением.

 Смежные вопросы

  • Нет связанных вопросов^_^