隐藏/显示表单元素在Android App上不起作用

时间:2011-08-18 00:16:08

标签: javascript android html hide show-hide

我正在尝试创建一个交互式表单。您的选择决定了出现的下一个问题。我正在使用jQuery Mobile,它在使用Dreamweaver的PC上运行良好,但是当我构建到Android时,java脚本无效。这看起来像简单的代码,所以我不确定为什么它不适用于Android。有人能告诉我哪里出错了吗?

以下是代码:

Javascript:

function toggle_visibility(id) {
   var e = document.getElementById(id);
   if(e.style.display == 'block')
      e.style.display = 'none';
   else
      e.style.display = 'block';
}

HTML:

<div id=SkillSet data-role="fieldcontain">
      <fieldset data-role="controlgroup" data-type="horizontal">
        <legend>Skill Set:</legend>
        <a onclick="toggle_visibility('AV');"><input type="checkbox" name="SkillSet" id="SkillSet_0" class="custom" value="" /></a>
        <label for="SkillSet_0">AV</label>
        <a onclick="toggle_visibility('IT');"><input type="checkbox" name="SkillSet" id="SkillSet_1" class="custom" value="" /></a>
        <label for="SkillSet_1">IT</label>
      </fieldset>
    </div>


   <div id="IT" style="display:none">
    <hr>

    Blah Blah Blah     
</div>

2 个答案:

答案 0 :(得分:1)

这是一个有趣的:

Android web DOES支持display:none 和javascript 并且没有使用jQuery mobile

我想这可能是因为你的输入周围有一个锚标记。尝试将onclick事件放在复选框上或在锚点中添加其他内容。

编辑: 或者可能是有多个具有相同ID的元素? Ids应该是独一无二的......

答案 1 :(得分:0)

尝试将功能附加到窗口。

window.toggle_visibility = function(id) {
   var e = document.getElementById(id).style.display;
   e=="block" ? e="none" : e="block";
}

虽然我确信jquery有类似的东西更简单。

另外,为什么a标签内的复选框?