HTML onclick =" myFunction"不工作

时间:2016-01-11 22:47:26

标签: javascript html

首先,我检查了几个教程网站,以澄清语法,如OnClick事件和提示属性,并将javascript从主体重新定位到头部(我听说这可以修复与浏览器相关的问题)。

出于某种原因,OnClick事件什么都不做。我已经测试了网站浏览器和单选按钮正确加载。

<!DOCTYPE html>
<html>
<head>
<script>
    function checkSkillLevel() {
        if(document.getElementById('skill_Easy').checked) {
            var ok = prompt("You chose Easy");
        }
        else if(document.getElementById('skill_Medium').checked) {
            var ok = prompt("You chose Medium");
        }
        else if document(getElementById('skill_Hard').checked) {
            var ok = prompt("You chose Hard");
        }
        else {
            var ok = prompt("Welcome to my tic tac toe game! To get started, please pick a skill level.");
        }
    }
</script>
</head>
<body>
<table cellpadding="10">
    <tr>
            <td><h1>Tic Tac Toe</h1></td>
    </tr>
    <tr>
        <td>
            <form action="" onclick="checkSkillLevel()">
            <input type="radio" name="skill" value="Easy" id="skill_Easy" onclick="checkSkillLevel();">Easy<br>
            <input type="radio" name="skill" value="Medium" id="skill_Medium">Medium<br>
            <input type="radio" name="skill" value="Hard" id="skill_Hard">Hard<br>
        </td>
    </tr>

另外,我更喜欢纯粹的Javascript(请不要使用JQuery)。

3 个答案:

答案 0 :(得分:1)

您应该为所有输入添加onclick,并更正以下行中的拼写错误:

else if document(getElementById('skill_Hard').checked) {

应该是:

else if(document.getElementById('skill_Hard').checked) {

希望这有帮助。

function checkSkillLevel() {
  if(document.getElementById('skill_Easy').checked) {
    var ok = prompt("You chose Easy");
  }
  else if(document.getElementById('skill_Medium').checked) {
    var ok = prompt("You chose Medium");
  }
  else if(document.getElementById('skill_Hard').checked) {
    var ok = prompt("You chose Hard");
  }
  else {
    var ok = prompt("Welcome to my tic tac toe game! To get started, please pick a skill level.");
  }
}
<table cellpadding="10">
  <tr>
    <td><h1>Tic Tac Toe</h1></td>
  </tr>
  <tr>
    <td>
        <input type="radio" name="skill" value="Easy" id="skill_Easy" onclick="checkSkillLevel();"/>Easy<br/>
        <input type="radio" name="skill" value="Medium" id="skill_Medium" onclick="checkSkillLevel();"/>Medium<br/>
        <input type="radio" name="skill" value="Hard" id="skill_Hard" onclick="checkSkillLevel();"/>Hard<br/>
        
    </td>
  </tr>
</table>

答案 1 :(得分:0)

将具有该功能的onclick-attr或onchange-attr添加到每个单选按钮,它将起作用。

答案 2 :(得分:0)

关于哪些元素正在监听getline(cin, three);事件。该表单没有onclick,它有onclick按钮虽然有onsubmit

onclick

变为:

<td>
    <form action="" onclick="checkSkillLevel()">
    <input type="radio" name="skill" value="Easy" id="skill_Easy" onclick="checkSkillLevel();">Easy<br>
    <input type="radio" name="skill" value="Medium" id="skill_Medium">Medium<br>
    <input type="radio" name="skill" value="Hard" id="skill_Hard">Hard<br>
</td>

另外,我还有另一件事。为什么使用<td> <form action=""> <input type="radio" name="skill" value="Easy" id="skill_Easy" onclick="checkSkillLevel();">Easy<br> <input type="radio" name="skill" value="Medium" id="skill_Medium" onclick="checkSkillLevel();">Medium<br> <input type="radio" name="skill" value="Hard" id="skill_Hard" onclick="checkSkillLevel();">Hard<br> </td> 向用户显示他们的选择?请改用prompt()