Как добавить постоянный префикс в текстовое поле с помощью Jquery - PullRequest
1 голос
/ 27 февраля 2012

Я хотел бы вариант водяного знака для текстового поля.Но я не хочу, чтобы водяной знак исчез.Я хочу, чтобы он действовал как префикс, который нельзя набрать или удалить.Я не хочу использовать решение HTML / CSS, например:

 <div style="border: solid 1px black; width:250px;">
   <label style="border:none;">prefix_</label>
   <input type="text" style="border:none;"/>
 </div>

Я даже хочу, чтобы префикс был представлен как часть значения текстового поля.Я хотел бы JQuery решение.Но я не должен использовать правильные ключевые слова для поиска, потому что я не могу найти его.У кого-нибудь есть идея?

Ответы [ 5 ]

2 голосов
/ 27 февраля 2012

Это позволит сохранить постоянный префикс:

$('#field').keyup(function() {
  var prefix = 'string'
  if (this.value.substring(0, prefix.length) != prefix){
    $(this).val(prefix)
  }
});​
1 голос
/ 27 февраля 2012

Попробуйте: (ответ Никола Пелучетти с некоторыми незначительными изменениями)

Не предпринимает никаких усилий, чтобы сохранить ввод пользователя, если он связывается с префиксом:

http://jsfiddle.net/vBBpS/2/

Попытки сохранить ввод пользователя:

http://jsfiddle.net/vBBpS/1/

0 голосов
/ 27 февраля 2012

Вот моя попытка в jQuery: http://jsfiddle.net/5n6WF/

$(function() {
    $('#field').val($('#field').data('prefix'));

    original_value = $('#field').val();

    $('#field').keyup(function() {
        var f      = $(this),
            prefix = f.data('prefix'),
            rx     = new RegExp('^' + escape(prefix));

        new_value = prefix + unescape(escape(f.val()).replace(rx, ''));

        if (original_value != new_value) {
            original_value = new_value;
            f.val(new_value);
        }
    });
});​
0 голосов
/ 27 февраля 2012

Вы можете добавить префикс при отправке текстового поля.Таким образом, вам не придется обрабатывать пользователей, пытающихся удалить префикс.

$('#submitbutton').click(function{
    var valueiwant = "myprefix "+$('#textfield').val();
});

Надеюсь, это поможет

0 голосов
/ 27 февраля 2012

Не знаю, как бы вы добавили его в текстовое поле (чтобы его нельзя было удалить), но вы можете просто добавить префикс при вызове значения текстового поля.Например:

<input type = 'text' id = 'inputID' />

<script type = 'text/javascript'>
  var MyVar = document.getElementById('inputID').value;
  var finalVar = "prefix_" + MyVar;
  MyVar.value = finalVar;
</script>

присоедините его к функции «onclick» или «onKeydown»

...