2015-08-25 64 views
0

嘗試了幾件事情,並沒有成功。我在這裏錯過了什麼?我只是想做一個簡單的警報或日誌,我不能。這裏是我有:onclick函數,如果複選框被選中事件

function toggleEmail() { 
 
    var isChecked = document.getElementById("subscribe"); 
 
    if (isChecked.checked) { 
 
    console.log('Yep, my function is being called'); 
 
} 
 

 
} 
 

 
toggleEmail();
<title>JavaScript Challenges</title> 
 
    </head> 
 
    <body> 
 
    <form action=""> 
 
     <fieldset> 
 

 
     <legend>Email subscriptions</legend> 
 

 
     <p id="subscribe"> 
 
      <label> 
 
      <input type="checkbox" name="subscribe" id="subscribe" onclick="toggleEmail()" /> 
 
      Yes! I would like to receive all of your free candy! 
 
      </label> 
 
     </p> 
 

 
     <p id="emailpara"> 
 
      <label>

+0

你有一個範圍問題,你正確初始化[小提琴](http://jsfiddle.net/hrt3ozma/)工作正常。 (不是「onLoad」,而是「無換行'」) – Teemu

回答

1

在的jsfiddle,HTML左側頂側,已經是<body>部分。你的功能正在工作。唯一的,你必須改變在左側沒有換行<head>。這意味着JavaScript正在運行在<head>

<head> 
    <script>JavaScript</script> 
</head> 
<body> 
    HTML 
</body> 

或者不循環 - 在<body>也在努力。這意味着JavaScript在<body>部分中的HTML之後運行。

<head> 
<head> 
<body> 
    HTML 
    <script>JavaScript</script> 
<body> 

Example

+0

謝謝P.Leger ....完全做到了! – Lucky500

+0

歡迎您! – Sun

0

修改這一行嘗試:

<input type="checkbox" name="subscribe" id="subscribe" onclick="toggleEmail()" /> 

<input type="checkbox" name="subscribe" id="subscribe" onchange="toggleEmail()" /> 
+0

嘿,夥計們,我確實改變了onchange,但我一直收到toogleEmail未定義的錯誤。 – Lucky500

+0

這裏是小提琴http://jsfiddle.net/Lucky500/j0vfzrwy/28/ – Lucky500

+0

你在哪裏添加JavaScript在你的HTML?如果你在外部文件中寫了你的js,那麼你必須用html鏈接它。在旁邊放置您的腳本鏈接在您的html正文的末尾。它應該正常工作。祝你好運。 – Imran

1

與您在您的評論(http://jsfiddle.net/Lucky500/j0vfzrwy/28/)給了小提琴的問題是,toggleEmail功能在頁面的onLoad事件處理程序被創建,並且是範圍的一部分,而不是成爲全球範圍的一部分。

當您在HTML標記使用直接結合是這樣的:

<input type="checkbox" name="subscribe" id="subscribe" onclick="toggleEmail()" /> 

然後你的函數必須在全球範圍內。

如果你只是改變你的小提琴使用「沒有換行 - 在<head>」它的作品,因爲該功能是在全球範圍內創建的。像這樣:http://jsfiddle.net/j0vfzrwy/32/