JQuery货币格式,但仅提交数字

JQuery货币格式,但仅提交数字,jquery,forms,currency,number-formatting,Jquery,Forms,Currency,Number Formatting,我找到了这个jQuery插件,您可以在其中键入一个数字(比如“650”),输入字段会自动将其更改为650欧元,-. 但当我提交表格时,表格值是“650欧元”(并不令人惊讶)。 我想要的是插件在提交表单时将其改回“650”的功能。输入只能接受整个欧元,因此不允许使用“650,40” 有人知道如何做到这一点吗?您必须手动提交表单,例如,如果您有这样的表单 <form name="f1"> <input type="text" id="autoNum"/> <input

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

但当我提交表格时,表格值是“650欧元”(并不令人惊讶)。

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


有人知道如何做到这一点吗?

您必须手动提交
表单,例如,如果您有这样的
表单

<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>

$(函数()
$(“#autoNum”).autoNumeric();
});
函数onsubmit(){
$(“#autoNum”).val($(“#autoNum”).autoNumeric(“get”);
document.f1.submit();
}

我们可以使用
autoNumeric
public方法
get

在您的服务器端尝试此代码,这很有效

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


650

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

$('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;
});
感谢:


现在,这可以通过插件默认选项实现

new AutoNumeric(".money-val", { unformatOnSubmit: true  });
表单提交后,它会在鼠标悬停在输入字段上时自动重新格式化

unformatOnHover:true

你可以发布一些代码吗?你使用了什么jquery插件?插件中通常会有一个api来获取实际值。我看到了这个演示:我想这个线程会帮助我:我会先试试这个。你能提供相同的提示值吗?输入字符串
€650,-
这是最新版本的AutoNumeric的一种方式。但是,如果您希望提交未格式化的数据,并与表单中的格式化数据保持在同一页面上,那么您最好使用like
anElement.formSubmitNumericString(回调)。如果要重新格式化所有未格式化的值,只需使用
anElement.formReformat()