如何让 HTML 按钮触发 Javascript 函数

How to make an HTML button trigger a Javascript function

我正在使用的 JSFiddle:https://jsfiddle.net/mL0uLx81/1/

我一直在尝试通过单击按钮触发一个名为 toggleCheckbox 的函数。

我试过在 input 标签上做 onclick="toggleCheckbox()",我试过在 JS 文件中添加 document.getElementById("surveyButton").addEventListener("click", toggleCheckbox, false);。他们都没有工作,我不确定为什么。

在您的 JSFiddle 中,您使用的是 jquery 而未将其包含在 fiddle 本身中。 alert(); 可以,但 $

无效

下面还有其他错误已更正 @AdamKonieska 指出

勾选

您的新 HTML(删除了点击):

<input type="button" value="Open" id="surveyButton" />

您的新 JS(在 $("#toggle").prop('checked', false); 中将 true 更改为 false):

var toggleCheckbox = function() {

  if ($("#toggle").is(':checked')) {
    SurveyDisappear();
  } else {
    SurveyAppear();
  }
}

var SurveyAppear = function() {
  $("#surveyButton").prop('value', 'Close');
  $("#toggle").prop('checked', true);
}

var SurveyDisappear = function() {
  $("#surveyButton").prop('value', 'Open');
  $("#toggle").prop('checked', false);
}

document.getElementById("surveyButton").addEventListener("click", toggleCheckbox, false);

请在下面找到plunker link https://plnkr.co/edit/vYvi4F45s6PpKrRvwqsA?p=preview

可能存在拼写错误

<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>
  <body>
    <input onclick="sampleFun()" type="button" value="button"/>
  </body>
</html>

// Code goes here
function sampleFun() {
  alert('hello');
}

如果您使用 jQuery,您可以 select 指定按钮的输入标签,并为其附加一个 .click() 侦听器,如下所示:

$('[type=submit]').click(function() {
     toggleCheckbox();
});

否则,我认为你做对了。希望我的上述解决方案有所帮助!

你已经很接近了,只需修复几个问题。

首先,您没有在 JS fiddle 中包含 jQuery。 其次,您的 toggleCheckbox 函数不在全局范围内,因此无法内联访问。 最后,您需要更新 appear/disappear 函数。看起来他们没有以相同的方式切换复选框和按钮。

更新代码

HTML

<input type="checkbox" name="toggle" id="toggle" />
<input type="button" value="Open" id="surveyButton" /> <!--removed inline JS-->

JavaScript

function toggleCheckbox() { //moved function to global scope, if you wanted to add the listner inline you'd do it this way.

  if($("#toggle").is(':checked')) {
    SurveyAppear();
  }  else {
    SurveyDisappear();
  }
}

var SurveyAppear = function() {
  $("#surveyButton").prop('value', 'Open'); //switched from Close
  $("#toggle").prop('checked', false); //changed to false
}

var SurveyDisappear = function() {
  $("#surveyButton").prop('value', 'Close'); //switched from Open
  $("#toggle").prop('checked', true);
}

document.getElementById("surveyButton").addEventListener("click", toggleCheckbox, false);

在更新后的 fiddle 中查看它的运行情况。 https://jsfiddle.net/igor_9000/mL0uLx81/2/

希望对您有所帮助!