【问题标题】:Javascript: Get Typeerror - element is nullJavascript:获取 Typeerror - 元素为空
【发布时间】:2017-12-01 13:09:14
【问题描述】:

我在 Wordpress 中有一个 BMI 计算器,它是

类型错误:

结果为空并且 健康为空

计算器在小提琴https://jsfiddle.net/2au9y34x/2/ 中运行良好 但不要在 Wordpress 上。我已将脚本放在页脚中,以便首先读取 HTML,所以这不是问题所在。 谁能帮忙解决这个问题?

Javascript 是:

<script type='text/javascript'>
  var form = document.querySelector('form[name=bmi]');
  var onSubmit = function(event) {

    event.preventDefault();
    var healthMessage;

    var result = form.querySelector('.result');
    var health = form.querySelector('.health');

    var weight = parseInt(form.querySelector('input[name=weight]').value, 10);
    var height = parseInt(form.querySelector('input[name=height]').value, 10);

    var bmi = (weight / (height / 100 * height / 100)).toFixed(1);

    if (bmi < 18.5) {
      healthMessage = 'undervægtig';
    } else if (bmi > 18.5 && bmi < 25) {
      healthMessage = 'normal vægtig';
    } else if (bmi > 25) {
      healthMessage = 'overvægtig';
    }
    result.innerHTML = bmi;
    health.innerHTML = healthMessage;
  }
  form.addEventListener('submit', onSubmit, false);
</script>

HTML 是:

<form name="bmi">
  <h1>Mål dit BMI:</h1>
  <label>
    <input type="text" name="weight" id="weight" placeholder="Vægt (kg)">
    <input type="text" name="height" id="height" placeholder="Højde (cm)">
    <input type="submit" name="submit" id="submit" value="Udregn BMI">
    </label>
  <div class="calculation">
    <div>
      Dit BMI er: <span class="result"></span>
    </div>
    <div>
      Dette betyder at du er: <span class="health"></span>
    </div>
  </div>
</form>

【问题讨论】:

  • 实际上小提琴中的代码是:window.onload = function() { /* your script */ };

标签: javascript html wordpress typeerror


【解决方案1】:

在表单结束标记后添加javascript

或者你可以试试这个

window.onload = function() {
 var form = document.querySelector('form[name=bmi]');
 var onSubmit = function(event) {

event.preventDefault();
var healthMessage;

var result = form.querySelector('.result');
var health = form.querySelector('.health');

var weight = parseInt(form.querySelector('input[name=weight]').value, 10);
var height = parseInt(form.querySelector('input[name=height]').value, 10);

var bmi = (weight / (height / 100 * height / 100)).toFixed(1);

if (bmi < 18.5) {
  healthMessage = 'undervægtig';
} else if (bmi > 18.5 && bmi < 25) {
  healthMessage = 'normal vægtig';
} else if (bmi > 25) {
  healthMessage = 'overvægtig';
}
result.innerHTML = bmi;
health.innerHTML = healthMessage;
}
form.addEventListener('submit', onSubmit, false);
}

【讨论】:

  • define('CONCATENATE_SCRIPTS', false ); 添加到 wp-config.php 文件中
  • 您是否尝试过在表单的结束标记后添加 javascript
  • 我不知道你喜欢什么,但它也在小提琴中工作
  • 我已经尝试在表单的结束标记后添加javascript,它仍然不起作用。并且将 define... 行添加到 wp-config 文件也不起作用。您可以链接到您的工作小提琴吗?
猜你喜欢
  • 2017-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-08
  • 2012-05-19
  • 2012-05-05
  • 2017-08-24
  • 2013-03-08
相关资源
最近更新 更多