JavaScript适用于Chrome,IE和Safari,但不适用于Firefox

时间:2011-03-29 16:32:09

标签: javascript firefox google-chrome coding-style

第一次在这里发帖,所以我希望我能正确地做到这一点,不过我已经在这里和谷歌搜索了我的问题的解决方案并且没有找到它。

JavaScript正在使用onkeyup更改HTML div的style.display。我不确定这是不是应该起作用的东西,但我似乎无法弄清楚为什么它在IE和Chrome中完美运行,而不是在Firefox中。

这是JS:

function q8a() 
{
var q8a = document.getElementById('q8a_days');
var q8a_n = document.getElementById('q8a_n');
var q8arrow = document.getElementById('q8arrow');

if(!q8a_n.checked)
    {
 if(q8a.value >= 1 && q8a.value <= 7) {
    q8b.style.display = '';
    q8arrow.style.display = '';
    }
else
    {
    q8b.style.display = 'none';
    q8arrow.style.display = 'none';
    }
    }
    }

以及它正在改变的HTML:

<tr > 
     <td colspan="4">
          <div id="q8a" >
               <p>8a. **Question** </p>
               <input id="q8a_days" name="q8a_days" type="text" maxlength="1" size="2"  onkeyup="q8a()" /> days   <br /> 
          </div> 
     </td> 
</tr> 
<tr > 
     <td> 
     </td> 
     <td> 
          <p> 
          <b>OR</b><br /> 
          </p> 
          <input id="q8a_n" name="q8a_n" type="checkbox" value="sadface" onclick="noshow8b()" />None 
     </td> 
     <td class="arrow" > 
          <div id="q8arrow" style="display:none"> 
                ------> 
          </div> 
     </td> 
     <td class="b" colspan="2"> 
          <div id="q8b" style="display:none"> 
               <p>8b. **Question** </p> 
               <p id="q8bwords"> 
               <input id="q8b_hours" name="q8b_hours" type="text" maxlength="1" size="1" /> hours <br /> 
               <input id="q8b_minutes" name="q8b_minutes" type="text" maxlength="2" size="1" /> minutes 
               </p> 
          </div> 
     </td> 
</tr> 

那么有人可以帮助我让这个脚本在Firefox中运行吗? 任何帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:1)

似乎q8b未定义,因此在function q8a()中添加以下代码:

var q8b = document.getElementById('q8b');