jQuery事件中的输入值返回undefine

时间:2017-02-02 22:37:29

标签: javascript jquery scope

我有两个独立的js文件。其中之一,名为services,我在其中定义输入字段并使用它运行一些jQuery。另一个文件调用services并使用返回的值。

如果我使用函数中的值(在services中),它将返回正确的值。否则,在我的secound文件中,它确实返回undefined,因为看起来,如果我调用该函数,它不会等到.change事件被触发

Services.js

var service = {

    main: function() {
        console.log(service.input);
    },

    init: function( input ) {
        service.input = input;
    },

    getInputValue: function() {
        $('#' + service.input).change(function() {
            return $('#' + service.input).val();
        });
    }
}; 

OtherJsFile.js

$(function(){
    var inputField;

    service.init('inputId');
    inputField = service.getInputValue();

    //Should print the value of inputId
    //Instead it prints undefined
    console.log(inputField);
});

我感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

一个问题是你在更改处理程序中返回的内容只返回到事件处理函数,而不是返回到外部getInputValue。所以没有从getInputValue()返回任何内容......这就是为什么你看到未定义的内容。

下一个问题是当您尝试获取该值时,事件尚未发生。

说实话,我不确定你要在这里完成什么