通过JavaScript/jQuery使用参数来强调HTML输入的值会返回undefined

Accesing to the value of a HTML input using a parameter through JavaScript/jQuery returns undefined

本文关键字:输入 HTML undefined 返回 jQuery JavaScript 参数 通过      更新时间:2023-09-26

我想动态更改HTML输入的值。代码是下一个:

for ( var i = 0; i < num_years; i++ ) {
    $( '#Edit-ano' + i ).on( "input", function() {
        var element = document.getElementById( 'Edit-ano' + i );
        element.value = addCommas( $(this).val() );
    });
}

但我收到了下一条消息:

Uncaught TypeError: Cannot set property 'value' of null

我也尝试过将"编辑-否"+I作为参数,并使用jQuery,如下所示:

for ( var i = 0; i < num_years; i++ ) {
    $( '#Edit-ano' + i ).on( "input", function() {
        var paramater = "Edit-ano" + i;
        var element = document.getElementById( paramater );
        element.value = addCommas( $(this).val() );
    });
}

或者:

for ( var i = 0; i < num_years; i++ ) {
    $( '#Edit-ano' + i ).on( "input", function() {
        var paramater = "#Edit-ano" + i;
        var element = $( paramater )[0]; //also using: var element = $( "#Edit-ano" + i )[0]
        element.value = addCommas( $(this).val() );
    });
}

在所有情况下,我都会收到相同的错误。

该代码正在"formCreated"事件内的jTable中使用。

令人惊讶的是,例如,如果我将参数直接作为"Edit-ano0"传递,它会完美地工作!但后来,我失去了动态行为:(

我的想法结束了,所以,我希望你的答案!

提前感谢!

试试这个。您只需要在DOM加载期间委托"input"或"keyup"事件,并用逗号附加值。

$(document).ready(function(){
var num_years = 4;
for ( var i = 0; i < num_years; i++ ) {
    $( '#Edit-ano' + i ).on( "input", function() {
        $(this).val($(this).val() + ',');
    });
}
});

示例:https://jsfiddle.net/DinoMyte/r9pffj2s/1/