当前位置: 首页 > 知识库问答 >
问题:

未定义onclick函数getInc

王楚青
2023-03-14

我正在创建我的第一个Web应用程序,并在相当早的时候遇到了一个问题!

我创建了一个函数,用于将用户键入的信息提取到HTML输入字段中。它的工作方式是,当用户输入他们的收入并单击submit按钮时,收入存储在一个变量中,供我在JavaScript代码的其余部分中使用。查看控制台日志,函数显示为“未定义”。

我很感激代码可能不是很干净,但我只是想让它工作,因为这是我的第一个小项目!

你知道我哪里出错了吗?

以下是HTML:

<div class="row input-1">           
    <label for="Gross Annual Salary">£</label>
    <input type="number" name="Gross Annual Salary" id="Ann-Sal" placeholder="Gross Annual Salary" required>
    <input type="button" class="submit-btn" value="Submit" onclick="getInc();">                                              
</div>

这里是JavaScript:

function getInc() {
    var inc = document.getElementById("Ann-Sal");
}

共有3个答案

薄哲
2023-03-14

好的,所以我试着用上面汤姆·奥的一些代码自己修复它:

var buttonEl = document.querySelector('input[type="button"]');

var inputEl = document.getElementById("Ann-Sal");

var annInc;

function clickHandler() {

    annInc = parseFloat(inputEl.value);
    console.log(annInc);
}

buttonEl.addEventListener('click', clickHandler);

HTML:

<div class="row input-1">

                        <label for="Gross Annual Salary">£</label>
                        <input type="number" name="Gross Annual Salary" id="Ann-Sal" placeholder="Gross Annual Salary" required>
                        <input type="button" class="submit-btn" value="Submit">


                    </div>

这不管用。在向输入字段提交收入时,没有错误消息,但控制台中没有记录任何内容。

然后,我将Javascript代码重新配置为:

var buttonEl = document.querySelector('input[type="button"]');

var inputEl = document.getElementById("Ann-Sal");

var annInc;

function clickHandler() {
    if (!inputEl.value.length) {
        console.error('A salary is required!');
        return;
    }

    annInc = parseFloat(inputEl.value);

    console.log(annInc);
}

buttonEl.addEventListener('click', clickHandler);

这就奏效了。我以前没有使用if语句来验证用户的输入,因为我在HTML代码中的input元素中使用了'required',这基本上是正确的吗?所以我猜代码之所以不能工作是因为没有使用“return”语句?

有人能向我解释一下为什么回报声明能让它起作用吗?

我相信对于你们中一些有经验的人来说,我的缺乏理解一定让你们很痛苦!不过,我下定决心要把这件事搞清楚。

非常感谢

储俊英
2023-03-14

首先确保你有你的

function getInc() {
    var inc = document.getElementById("Ann-Sal");
}

然后您将获得用户输入到代码中的值。

此外,提示使用addEventListener()而不是onhtml属性,这是更好的做法。

厉钊
2023-03-14

我从onclick端移除semiclon,它就工作了

<div class="row input-1">
  <label for="Gross Annual Salary">£</label>
  <input type="number" name="Gross Annual Salary" id="Ann-Sal" placeholder="Gross Annual Salary" required>
  <input type="button" class="submit-btn" value="Submit" onclick="getInc()">
</div>


<script>
  function getInc() {
    console.log('works');
    var inc = document.getElementById("Ann-Sal");
  }
</script>
 类似资料:
  • 我是wordpress的新手,正在尝试定义和调用一个函数,但无法让它工作。 以下代码出现在使用get_template_part从content.php文件调用的php文件中。 我在function.php文件的底部添加了以下代码: 单击该元素时,它将返回: (index): 363未捕获引用错误:没有定义check AllTopicCheckBox。 有人能帮帮我吗?

  • 问题内容: 我有一个ajax脚本,我想从一个函数发布。我正在使用onlick href,但是它没有显示为undefined。这是使用WordPress的。我试图在范围内和范围外移动代码,但是我似乎仍然无法正常工作。 谢谢 :) 问题答案: 当您执行此操作时,将调用global函数。由于在函数中定义了,因此它不是全局的。因此,是(因此)。 全局变量存储在对象中。 因此,可以将其公开为全局变量: 请注

  • 问题内容: 我正在尝试为网站添加 自定义表情的用户脚本 。但是,我遇到了很多错误。 这是函数: 该标签的调用该函数: 每次单击具有属性的按钮时,都会出现此错误: 未捕获ReferenceError:函数未定义。 任何帮助,将不胜感激。 谢谢! 我尝试使用: 但是我有一个错误。 这是脚本。 我试图这样做来测试听众是否正常工作,但他们不适合我: 问题答案: 切勿使用或用户脚本中的类似属性!在常规网页中

  • 我正在尝试为一个网站做一个用户脚本来添加自定义的表情。然而,我已经得到了很多错误。 函数如下: 标记的调用此函数: 每次单击具有属性的按钮时,都会出现以下错误: 未捕获得ReferenceError:未定义函数. 我尝试使用: 但我得到一个错误。 这是剧本。 我试着这样做来测试监听器是否对我有效,而它们对我无效:

  • 在index.js,我有: 我从以下地方复制粘贴了代码:https://firebase.google.com/docs/functions/get-started 不知何故,当我使用 我得到: 错误:分析函数触发器时出错。ReferenceError:未在对象上定义函数。(/home/[USERNAME HERE]/functions/index.js:1:87)在模块中_在对象处编译(modu

  • 我试图将onclick事件添加到svg元素中。 custom.svg