获取和操作具有相同类名的更多输入字段的正确方法是什么

时间:2013-11-12 20:03:11

标签: jquery input

我想操纵用户输入字段。 这是正确的方法吗?或者任何想要最小化的想法?

jsfiddle link

HTML:

<div class="form-group">
    <input class="form-control value_no" id="01" type="text" value="0" />
</div>
<div class="form-group">
    <input class="form-control value_no" id="02" type="text" value="0" />
</div>

的javascript:

$(document).ready(function(){
    $("#01").keyup(function () {
        var value = $(this).val();
        var result = value.replace(/[^0-9.]/g,'');
    $('#01').val(result);
    }).keyup();

    $("#02").keyup(function () {
        var value = $(this).val();
        var result = value.replace(/[^0-9.]/g,'');
    $('#02').val(result);
    }).keyup();
})

2 个答案:

答案 0 :(得分:2)

使用公共类和this的实例来避免重复类似的代码:

$(".value_no").keyup(function () {
    var value = this.value
    var result = value.replace(/[^0-9.]/g,'');
    this.value = result;
}).keyup();

此外,使用this.value,而不是$(this).val() - 无需让jQuery满意:)

答案 1 :(得分:0)

你重复了太多的代码(因为我怀疑你知道)。

使用选择器来查找两个输入。从您发布的代码“input.value_no”应该是一个好的选择器,但没有完整的HTML代码可用,不可能说它是否会偶然匹配任何更多的控件:

$(document).ready(function(){
    $("input.value_no").keyup(function () {
        var value = $(this).val();
        var result = value.replace(/[^0-9.]/g,'');
        $(this).val(result);
    }).keyup();
})