JavaScript在运行之前不允许输入

时间:2013-07-16 04:34:24

标签: javascript html url

我在用户输入之前运行此javascript时遇到问题,有人可以帮我解决此问题。

我只是尝试使用文本框和按钮创建一个小html页面,然后单击该按钮打开一个带有修改过的URL的新窗口。

<input type="text" name="enter" class="enter" value="" id="lolz" />
<button type="button" id="the_button">Count</button>

document.getElementById('open').addEventListener('click', myFunction());
function myFunction() {
  var button = document.getElementById("the_button");
  var siteid = document.getElementById('lolz').value
  button.onclick = count();

  function count() {
    window.location = "http://www.websiteimusing.com/" + siteid;
  }
 }

您可以查看代码here 实际生成该网站代码的输出为this

更新的代码

document.getElementById('the_button').addEventListener('click', myFunction);
 function myFunction() {
   var button = document.getElementById("the_button");
   var siteid = document.getElementById('lolz').value
    button.onclick = count();

 function count() {
     window.location = "http://www.websiteimusing.com/" + siteid;
   }
  }

3 个答案:

答案 0 :(得分:2)

更改为:

document.getElementById('open').addEventListener('click', myFunction);

当您将()放在函数名后面时,表示此时调用该函数。

答案 1 :(得分:2)

代码中没有标识为open的元素,因此您尝试将事件侦听器添加到null。控制台会告诉你相同的事情:

Uncaught TypeError: Cannot call method 'addEventListener' of null

还要确保从事件监听器功能中删除parens,正如其他海报所述。

答案 2 :(得分:1)

在这一行

document.getElementById('open').addEventListener('click', myFunction());

您正在通过添加()

来调用该函数

将其更改为:

document.getElementById('open').addEventListener('click', myFunction);