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'];
....
....
?>
Другие вопросы по тегам