Javascript jquery不基于另一个输入标记的值更改一个输入标记的值

Javascript jquery不基于另一个输入标记的值更改一个输入标记的值,javascript,jquery,regex,asp.net-mvc,Javascript,Jquery,Regex,Asp.net Mvc,我有一个class=class1的输入tag1和class=class2的另一个tag2。输入值是数字。我希望当tag1中的值更改时,tag2的值更改为tag1值的一半。除tag1值有逗号(如1000)外,以下选项适用。我正在使用正则表达式删除逗号,但当tag1值大于999时,它仍然不起作用 $('.class1').change(function () { $('.class2').val(parseInt($('.class1').val().replace(/,/g, '')

我有一个class=class1的输入tag1和class=class2的另一个tag2。输入值是数字。我希望当tag1中的值更改时,tag2的值更改为tag1值的一半。除tag1值有逗号(如1000)外,以下选项适用。我正在使用正则表达式删除逗号,但当tag1值大于999时,它仍然不起作用

$('.class1').change(function () {    
   $('.class2').val(parseInt($('.class1').val().replace(/,/g, '')) / 2).change();
});
这是一个ASP.NET MVC 4应用程序,下面是tag1和tag2的示例:

@Html.TextBox("txt_Fees","",new{ @class="class1"})
@Html.TextBox("txt_HalfFees","",new{ @class="class2"})

您可以尝试将费用值限制为仅限数字,如下所示:

<input type="text" class="class1" name="txt_Fees" />
<input type="text" class="class2" name="txt_HalfFees" />


(function($){
    var $fee = $('.class1'),
        $halfFee = $('.class2'),
        numsOnly,
        handleFeeChange;

    numsOnly = function(){
        var val = this.value.replace(/[^0-9]/g, '');
        this.value = val;
    };

    handleFeeChange = function() {
        var val = this.value;
        $halfFee.val(val / 2);
    };

    $(function(){
        $fee
        .on('keydown keyup', numsOnly)
        .on('change', handleFeeChange);
    });

})(window.jQuery);

(函数($){
变量$fee=$('.class1'),
$halfFee=$('.class2'),
仅限numsOnly,
手感变化;
numsOnly=函数(){
var val=此.value.replace(/[^0-9]/g');
this.value=val;
};
handleFeeChange=函数(){
var val=该值;
$halfFee.val(val/2);
};
$(函数(){
美元费用
.on('keydown keyup',仅限nums)
.on(‘变更’、handleFeeChange);
});
})(window.jQuery);

这里的示例:

对我来说很好:工作正常:将字符串除以一个数字或使用不带基数的parseInt可能会产生意外的结果。请尝试
$('.class2').val(parseInt($('.class1').val().replace(/,/g')),10)/2.change()
根据@Dalius的建议,我在上面的parseInt重载中添加了
radix
(10),现在可以使用了。感谢您的建议。客户希望数字以货币格式显示(如1500等)。在上面的例子中,我只是根据Dalius的建议在parseInt重载中添加了基数10,它起了作用。我已经在强制用户只在money/number字段中输入数字。