Javascript input.value不起作用

时间:2016-09-30 11:28:28

标签: javascript jquery

我正在使用Domready.js库作为jQuery document.ready()函数的替代品,在ready函数中我有这段代码:

DomReady.ready( function() {

    /*
        DOM elements
    */ 
    var tel_input = document.getElementsByClassName( 'tel-input' );

    /*
        When .tel-input is focused, `06` should be added automatically
    */
    tel_input.onfocus = function() {
        tel_input.value = '06';
    };

});

此代码不执行任何操作,控制台不会抛出错误。在tel_input.onfocus = function() {中发出警报时可以正常工作,但在输入聚焦时插入值不会做任何事情。

1 个答案:

答案 0 :(得分:2)

正如@FrédéricHamidi在评论中所说 - getElementsByClassName返回一个DOM元素列表。

您只有一个元素,但仍需要获取列表的第一个元素

$( function() {

    /*
        DOM elements
    */ 
    var tel_input = document.getElementsByClassName( 'tel-input' );
    /*
        When .tel-input is focused, `06` should be added automatically
    */
    tel_input[0].onfocus = function() {
        tel_input[0].value = '06';
    };

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="tel-input" />