【问题标题】:JS referenceError: change is not definedJS referenceError:未定义更改
【发布时间】:2013-05-14 22:52:28
【问题描述】:

当使用onkeyup 事件解除键时,我有 4 个输入框调用函数。出于某种原因,我收到一条错误消息,指出未定义“更改”(函数的名称)。我确实正确地定义了函数,所以我不知道是什么原因造成的。

演示会比我解释得更好:
(来源:snag.gy

好的,知道了。我得到了那个错误,但原因不是我所怀疑的。 http://jsfiddle.net/qWcZ6/2/

【问题讨论】:

  • 我没有收到那个错误......你怎么做才能得到它?
  • 请贴出相关代码
  • @KevinBoucher 所有代码都在小提琴中
  • 存在语法错误,因为variable 是 DOM 元素而不是字符串
  • @ExplosionPills 该错误是由于在演示的顶部方程式中更改mxyb 引起的。

标签: javascript html function onkeyup referenceerror


【解决方案1】:

不确定您到底想做什么,但以下工作 (fiddle):

function change(variable) {
    var value = $(variable).val();
    alert(value);
    $(variable).html(value);
}

【讨论】:

  • 对不起,我没有很好地解释自己。我想要的是更改演示中的所有变量。例如:当我更改m 时,它会更改所有ms
  • 或者可能不是;),至少我认为它做了他想要的,而且它有效。
  • 哦,我明白了——我没有把传递给函数的变量放在引号中,所以它不像我预期的那样强,它是一个变量
  • 它可能不会。我读了一半的问题,然后去了小提琴,让它做我认为你想让它做的事情。我想我应该得到那次反对票。
  • 无论如何我都要把它标记为答案,因为它确实促使我修复它:jsfiddle.net/qWcZ6/2
【解决方案2】:

这是一个更好的模式。

<mtext><input id="y" value="y" class="vars"></input></mtext>
<mo>=</mo>
<mtext><input id="m" value="m" class="vars"></input></mtext>
<mo>&#x00D7;</mo>
<mtext><input id="x" value="x" class="vars"></input></mtext>
<mo>+</mo>
<mtext><input id="b" value="b" class="vars"></input></mtext>

    $(document).ready(function(){
        function change() {
            var value = $(this).val();
            //alert(value);
            if (console && typeof console.log !== 'undefined') {
                console.log("value",value);
            }
        }
        $('.vars').on('keyup',change);
    });

http://jsfiddle.net/BELIKEMIKE/WAcLW/2/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-21
    • 2021-07-03
    • 2019-04-15
    • 2012-08-24
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多