Javascript 为什么停止工作?

Javascript 为什么停止工作?,javascript,Javascript,我有一个问题,为什么我的Javascript在纯html-localhost上正确工作,但当包含代码时,为什么停止工作?怎么了?请帮帮我 <HTML> <head> </head> <BODY> <script type="text/javascript"> function CheckContact(val){ var element=document.getElementById('email'); if(val=='email

我有一个问题,为什么我的Javascript在纯html-localhost上正确工作,但当包含代码时,为什么停止工作?怎么了?请帮帮我

<HTML>
<head>
</head>
<BODY>
<script type="text/javascript">
function CheckContact(val){
 var element=document.getElementById('email');
 if(val=='email')
   element.style.display='block';
 else
   element.style.display='none';

 var element=document.getElementById('sms');
 if(val=='sms')
   element.style.display='block';
 else
   element.style.display='none';
}
</script>
<select name="contactinfo" id="contactinfo" onchange="CheckContact(this.value);">
  <option>Select Contact Option</option>
  <option value="email" class="email">Email</option>
  <option value="sms"class="email">Text (SMS)</option>
</select><br />
<select>
<option> - </option>
<option id="email" style="display: none;">Enter Email: </option>
<option id="sms" style="display: none;">Enter Cell Number: </option>
</select>
</body>
</html>

我有一个问题,为什么在wordpress页面中包含此代码时javascript停止工作

jsfiddle允许您选择页面左侧下拉列表中javascript代码的放置位置。将其从onLoad更改为NoWrap-in,以使您的函数在全局范围内可访问。

如果您使用“{}”

'function CheckContact(val){
 var element=document.getElementById('email');
 if(val=='email') {
    element.style.display='block';
 }
 else {
    element.style.display='none';
 }
 var element=document.getElementById('sms');
 if(val=='sms') {
    element.style.display='block';
 }
 else {
    element.style.display='none';
 }
 console.log ("test");
}'

像上面的例子一样进行一些console.log调用,直到我添加了“{}”,即使在普通浏览器中,它也根本不起作用。

只需将您的fiddle更改为no wrap-in即可。它在Chrome中为我工作。

您可能希望将标题更改为稍微少一点的内容。。。宽泛。不清楚你在问什么,特别是因为你没有明确说明什么是“工作”。该怎么办?在某些浏览器中,不可能隐藏option元素。这对我来说没有任何改变。。。我不知道为什么,但电子邮件和短信选项都会在加载时显示。@请确保在更改该设置后再次点击run。当第一个下拉值被更改时,它正在调用CheckContact方法。我不是OP,只是确认你的答案,如果答案正确,就向上投票。我编辑了我之前的评论。对,是Chrome-@AlbertXing啊,我错了。是的,我相信他的问题是,这个函数是在onLoad处理程序中定义的,所以这可能是重复的,正如p.s.w.g在问题的评论中提到的,顺便说一句,你错了。如果你在其他两个答案之外还有什么话要说,你可能想修改你的答案使之正确,或者删除它。