Я пытался автоматически отформатировать валюту в форме, которую я пытался создать, которая не будет принимать буквы и символы. Когда мне удалось создать его и внедрить в мою форму html, он начал добавляться ко всем полям ввода, а не только к полю валюты моей суммы. Как я могу изменить код таким образом, чтобы он взаимодействовал только с одним или двумя валютными полями вместо всех. Здесь я добавлю пример валюты автоформатирования, он включает html, javascript и jquery:
(function($, undefined) {
"use strict";
// When ready.
$(function() {
var $form = $( "#form" );
var $input = $form.find( "input" );
$input.on( "keyup", function( event ) {
// When user select text in the document, also abort.
var selection = window.getSelection().toString();
if ( selection !== '' ) {
return;
}
// When the arrow keys are pressed, abort.
if ( $.inArray( event.keyCode, [38,40,37,39] ) !== -1 ) {
return;
}
var $this = $( this );
// Get the value.
var input = $this.val();
var input = input.replace(/[\D\s\._\-]+/g, "");
input = input ? parseInt( input, 10 ) : 0;
$this.val( function() {
return ( input === 0 ) ? "" : input.toLocaleString( "en-US" );
} );
} );
$form.on( "submit", function( event ) {
var $this = $( this );
var arr = $this.serializeArray();
for (var i = 0; i < arr.length; i++) {
arr[i].value = arr[i].value.replace(/[($)\s\._\-]+/g, ''); // Sanitize the values.
};
console.log( arr );
event.preventDefault();
});
});
}) (jQuery);
<span class="currency">$</span>
<input id="amount" name="amount" type="text" maxlength="15" />