我有一个未捕获的参考错误,表示未定义函数,即使它似乎已定义

时间:2017-12-04 22:50:05

标签: javascript jquery

我想在输入字段的输入发生变化时执行一些javascript代码。我首先指定了一个oninput事件处理函数名。

<input type="text" name="venue_name" value="<?php echo $event->venue_name(); ?>"
    class="form-control w2bw2c-name w2bw2c-venue-name" placeholder="Search..." 
    oninput="inputChange()">

我在我的文档就绪函数之外定义了inputChange函数,这已经工作了一段时间,但现在它无效了。现在我有了这段代码:

<input type="text" name="venue_name" value="<?php echo $event->venue_name(); ?>"
    class="form-control w2bw2c-name w2bw2c-venue-name" placeholder="Search...">

在我的document.ready函数中,我有:

$('select.w2bw2c-name').input(function() {
    inputChange(this);
});

在我的document.ready函数之外,我有函数:

function inputChange(x) { 
    ... some code ...
};

现在,当我在输入字段中输入一些文本时,我收到inputChange未定义的消息。也许复杂的是我必须使用一个类作为选择器,但是输入字段可能在一个表单中出现多次,我最初会让它工作。

2 个答案:

答案 0 :(得分:1)

.input()不是附加input事件的有效方式,您应该使用.on(),例如:

$('select.w2bw2c-name').on('input', function() {
    inputChange(this);
});

注意:当您输入时,您的选择器会引用select标记,它可能是:

$('input.w2bw2c-name')..

而不是:

$('select.w2bw2c-name')..

答案 1 :(得分:0)

我的HTML末尾有我的javascript。我将其中的一部分(所谓的“未定义”函数)移动到我的HTML头部,并按照预期触发事件。问题现在是被调用函数inputChange对数据库进行AJAX调用,而不是返回所有数据(填充自动提示列表)。我将保存另一个问题。