对所有字段使用jquery更改函数

时间:2014-07-17 14:13:55

标签: javascript jquery function

我为自己输入了现场价格检查号码,点数,如果逗号则将其替换为点。

使用更改功能我将逗号更改为点并使用.toFixed(n)

我正在尝试创建一个函数,然后我可以从不同的输入调用它。创建20个输入20个更改函数并不是一个好主意。

HTML:

<input id="txtId" type="text" onkeyup="NumAndTwoDecimals(event , this);"></input>
<br>
<input id="txtId2" type="text" onkeyup="NumAndTwoDecimals(event , this);"></input>

JS

    $('#txtId').change(function( event ) {

            var newVal = String($(this).val()).replace(/\,/g,'.');

            var regexp = /^([0-9]+[\.]?[0-9]?[0-9]?|[0-9]+)$/g;

            if (regexp.test(newVal)) {

                $(this).val(Number(newVal).toFixed(2));

            }else{
                // error
                $(this).val('');
            }
    });

window.NumAndTwoDecimals = function(e , field) {
    var val = field.value;
    var re = /^([0-9]+[\,||\.]?[0-9]?[0-9]?|[0-9]+)$/g;
    var re1 = /^([0-9]+[\,||\.]?[0-9]?[0-9]?|[0-9]+)/g;
    if (re.test(val)) {
        //do something here
    } else {
        val = re1.exec(val);
        if (val) {
            field.value = val[0];
        } else {
            field.value = "";
        }
    }
}

演示:

http://jsfiddle.net/8vaaZ/5/

1 个答案:

答案 0 :(得分:2)

你可以给他们一个共同的类,并将事件绑定到该类。

或者您可以像这样使用选择器属性启动

$('[id^=txtId]').change(function( event ) {

这会将更改事件绑定到ID以txtId

开头的元素