Jquery - How Do I Insert a Character into an input
Can someone help me out with this please...
I am doing a web form. I would like to insert the dollar sign into some INPUTs that have a numberfield class. I want the user's content to follow the dollar sign or 开发者_运维知识库course.
This inserts the dollar sign OK, but the content ends up in front of it.
$('input.numberfield').val('$');
NOTE - the dollar sign is required because this is financial data (nothing to do with jquery! :) )
in other words - someone types in '100' and it becomes '$100')
You can do something like this:
$('input.numberfield').each(function() {
$(this).val('$' + $(this).val());
}
In 1.4, a simple more complete solution for your scenario:
$('input.numberfield').keyup(function() {
$(this).val(function(i,v) {
return '$' + v.replace('$',''); //remove exisiting, add back.
});
});
Why make your life complex? Just put the dollar sign into the HTML outside of the input element...
<span style="border: inset 1px black; padding: 1px;">
$<input style="border: none; padding: 0;">
</span>
You can pass a function to val()
and use a regular expression to add a $
to the front if there isn't one there already:
$("input.numberfield").val(function(i, val) {
return val.replace(/^\s*(?!\$)/, "$");
});
The above regex means replace a sequence of white space at the beginning of the value that isn't followed by a dollar sign with a dollar sign. This would work too:
$("input.numberfield").val(function(i, val) {
return val.replace(/^\s*(\$)?/, "$");
});
var store = $("input.numberfield");
store.val("$" + store.val());
精彩评论