【问题标题】:JQuery currency formatting, but submit only the numberJQuery货币格式化,但只提交数字
【发布时间】:2023-03-03 10:14:02
【问题描述】:

我找到了这个用于 jQuery 的插件,您可以在其中输入一个数字(比如“650”),然后输入字段会自动将其更改为 650 欧元,-.

但是当我提交表单时,表单值是“€650,-”(不是很令人惊讶)。

我想要的是插件在提交表单时将其更改回“650”的功能。输入应该只接受整欧元,因此“650,40”是不允许的。

有谁知道如何做到这一点?

【问题讨论】:

标签: jquery forms currency number-formatting


【解决方案1】:

这是我用来回答这个问题的:

$('form').submit(function(){
    var form = $(this);
    $('input').each(function(i){
        var self = $(this);
        try{
            var v = self.autoNumeric('get');
            self.autoNumeric('destroy');
            self.val(v);
        }catch(err){
            console.log("Not an autonumeric field: " + self.attr("name"));
        }
    });
    return true;
});

感谢:

autoNumeric.js remove formatting before submitting form

【讨论】:

    【解决方案2】:

    您必须手动提交form,例如,如果您有这样的form...

    <form name="f1">
    <input type="text" id="autoNum"/>
    <input type="button" value="submit" onclick="onsubmit()"/>
    </form>
    <script>
     $(function()
     $("#autoNum").autoNumeric();
     });
      function onsubmit(){
        $("#autoNum").val($("#autoNum").autoNumeric("get"));
        document.f1.submit();
      }
    </script>
    

    我们可以使用autoNumeric公共方法get获取不带货币符号的值。

    【讨论】:

    • 你能提供与警报值相同的小提琴吗?输入字符串€650,-
    【解决方案3】:

    在你的服务器端试试这个代码,这行得通。

    string x = "€650,-";
    x = Regex.Replace(x, "[^0-9,]", "");
    x = x.Split(',')[0];
    

    输出:

    650

    【讨论】:

      【解决方案4】:

      现在可以使用插件默认选项。

      new AutoNumeric(".money-val", { unformatOnSubmit: true  });
      

      表单提交后,鼠标悬停在输入字段上时会自动重新格式化。

      unformatOnHover:true
      

      【讨论】:

      • 这是使用最新版本 AutoNumeric 的方法。但是,如果您想提交未格式化的数据,并与表单中的格式化数据保持在同一页面上,那么您更愿意使用specialized form functions,如anElement.formSubmitNumericString(callback);。如果要重新格式化所有未格式化的值,只需使用anElement.formReformat();
      猜你喜欢
      • 2022-11-14
      • 1970-01-01
      • 2017-03-23
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      • 2012-05-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多