JQuery - Как я Вставляю Символ во вход

Может кто-то выручать меня с этим...

Я делаю веб-форму. Я хотел бы вставить знак доллара в некоторые ИСХОДНЫЕ ДАННЫЕ, которые имеют numberfield класс. Я хочу, чтобы содержание пользователя следовало за знаком доллара или курсом.

Это вставляет знак доллара хорошо, но содержание заканчивается перед ним.

$('input.numberfield').val('$');

ОТМЕТЬТЕ - знак доллара требуется, потому что это - финансовые данные (ничто, чтобы сделать с jQuery!:))

другими словами - кто-то вводит в '100', и это становится '100$'),

8
задан Lie Ryan 9 April 2011 в 07:11
поделиться

4 ответа

Вы можете сделать что-то вроде этого:

$('input.numberfield').each(function() {
  $(this).val('$' + $(this).val());
}

В 1.4, более простое более полное решение для вашего сценария:

 $('input.numberfield').keyup(function() {
   $(this).val(function(i,v) {
     return '$' + v.replace('$',''); //remove exisiting, add back.
   });
 });
10
ответ дан 5 December 2019 в 07:34
поделиться

Зачем усложнять вашу жизнь? Просто поместите знак доллара в HTML за пределами элемента ввода ...

<span style="border: inset 1px black; padding: 1px;">
  $<input style="border: none; padding: 0;">
</span>
8
ответ дан 5 December 2019 в 07:34
поделиться
var store = $("input.numberfield");
store.val("$" + store.val());
0
ответ дан 5 December 2019 в 07:34
поделиться

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

$("input.numberfield").val(function(i, val) {
  return val.replace(/^\s*(?!\$)/, "$");
});

Приведенный выше regex означает замену последовательности пробелов в начале значения, за которым не следует знак доллара, на знак доллара. Это тоже подойдет:

$("input.numberfield").val(function(i, val) {
  return val.replace(/^\s*(\$)?/, "$");
});
4
ответ дан 5 December 2019 в 07:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: