JqueryUI счетчик чисел отформатировать валюту передать числовое значение
У меня есть ввод валюты jquery, и я использую этот код:
$('input[name="precio"]').spinner({
min:0,
numberFormat: 'C'
});
Ввод работает отлично, поскольку он показывает число в виде числа со знаком $ или € в зависимости от глобализации.
Проблема в том, что, когда я отправляю форму, я получаю текст, подобный этому, "5,00 €", и я хотел бы, чтобы он был 5,00 или 500, просто числовое значение.
Есть какой-либо способ сделать это? Заранее спасибо.
2 ответа
Хорошо, в конце концов мне удалось сделать это так, как я хотел. Я только что создал плагин под названием currentcyspinner, который расширяет спиннер из JQueryUI, вот код:
$.widget( "ui.currencyspinner", $.ui.spinner, {
options: {
numberFormat: 'C', // Currency Format
min:0,
step:0.10
},
_create: function(){
this.hidden = $('<input type="hidden" value="'+this.element.val()+'" name="'+this.element.attr('name')+'">'); // Create a hidden input with the same name and value
this.element.removeAttr('name'); // remove the name of the original element
this.element.before(this.hidden); // insert the hidden element before the original element
return this._super();
},
_refresh: function() {
this.hidden.val(this._parse(this.element.val())); // put the aria-valuenow on the original element
return this._super();
},
_destroy: function(){
this.element.attr('name',this.hidden.attr('name')); // put back the name on the original value
this.hidden.remove(); // remove the hidden element
return this._super();
}
});
Я создаю скрытый вход с тем же именем и присваиваю ему значение aria-valuenow при каждом обновлении счетчика.
БУДЬТЕ ОСТОРОЖНЫ, если вы пытаетесь получить доступ к приводу currentcyspinner после создания устройства, которое вы не можете использовать. $('input[name="nameoftheelement"]').currencyspinner(...);
поскольку это будет скрытый ввод, а не сам счетчик.
Надеюсь, это кому-нибудь поможет!
Является атрибутом aria-valuenow для этого ввода, который получает текущее числовое значение (без формата)
http://jsfiddle.net/ma8zd7mg/1/
$("#spinner").spinner({
min: 0,
numberFormat: "C"
});
$("#test").click(function(){
alert($("#spinner").attr('aria-valuenow'));
});
РЕДАКТИРОВАТЬ (чтобы ответить на ваш вопрос в комментариях) Чтобы получить значение после отправки в PHP, вы можете: 1. Создать заполнитель ввода, который получает числовое значение счетчика, и это значение будет отправлено 2. Используйте PHP для удаления символы дополнительного формата ($,. и дополнительные нули)
Я рекомендую первый метод, что-то вроде этого:
$("#submit-btn").click(function(e){
//prevent the form submission
e.preventDefault();
//add a placeholder input with the value of the spinner
$("#my-from").append('<input/>', {
'type': 'hidden',
'name': 'spinner-value',
'value': $("#spinner").attr('aria-valuenow')
});
//now submit the form
$("#my-form").submit();
});
Тогда в PHP вы можете просто получить значение "spinner-value"
<?php
$spinner = $_REQUEST['spinner-value'];
....
....
?>