如何使用此JQuery更改文本框的值?

时间:2019-04-21 11:49:36

标签: jquery textbox

我有正在运行的脚本,该脚本将根据需要更改文本框的值。我正在尝试对其进行更多更改。

var total = 0; // adds a decimal and 2 zeros
$('input:checkbox:checked').each(function(){
 total += isNaN(parseInt($(this).val())) ? 0 : parseInt($(this).val());
}); 

$("#total").val(total.toFixed(2));
$.fn.digits = function(){ // adds a comma every 3 numbers 
    return this.each(function(){ 
        $(this).text( $(this).text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") ); 
    })
}
$("#total").digits();
<input type="text" class="form-control" id="total" style="background-color:#ffffff;">
<span id="total_text"></span>
$("#total_text").digits(); // this works to change the span tag

.toFixed(2)可以很好地更改文本框和span标签。

当我尝试添加.digits()时,文本框没有任何反应。

1 个答案:

答案 0 :(得分:0)

您需要使用.val()而不是.text()来读取和更改文本框的值。因此,该功能需要检查元素$(this)是哪种类型。

$.fn.digits = function(){ // adds a comma every 3 numbers 
    return this.each(function(){
        var method = $(this).is(":input") ? "val" : "text";
        $(this)[method]( $(this)[method]().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") ); 
    })
}
$("#total").digits();