Может кто-то выручать меня с этим...
Я делаю веб-форму. Я хотел бы вставить знак доллара в некоторые ИСХОДНЫЕ ДАННЫЕ, которые имеют numberfield класс. Я хочу, чтобы содержание пользователя следовало за знаком доллара или курсом.
Это вставляет знак доллара хорошо, но содержание заканчивается перед ним.
$('input.numberfield').val('$');
ОТМЕТЬТЕ - знак доллара требуется, потому что это - финансовые данные (ничто, чтобы сделать с jQuery!:))
другими словами - кто-то вводит в '100', и это становится '100$'),
Вы можете сделать что-то вроде этого:
$('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.
});
});
Зачем усложнять вашу жизнь? Просто поместите знак доллара в HTML за пределами элемента ввода ...
<span style="border: inset 1px black; padding: 1px;">
$<input style="border: none; padding: 0;">
</span>
var store = $("input.numberfield");
store.val("$" + store.val());
Вы можете передать функцию в val()
и использовать регулярное выражение, чтобы добавить $
в начало, если его там еще нет:
$("input.numberfield").val(function(i, val) {
return val.replace(/^\s*(?!\$)/, "$");
});
Приведенный выше regex означает замену последовательности пробелов в начале значения, за которым не следует знак доллара, на знак доллара. Это тоже подойдет:
$("input.numberfield").val(function(i, val) {
return val.replace(/^\s*(\$)?/, "$");
});