首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将隐藏类型输入转换为复选框类型输入?

如何将隐藏类型输入转换为复选框类型输入?
EN

Stack Overflow用户
提问于 2013-06-24 18:25:50
回答 3查看 1.2K关注 0票数 1

这可能听起来很愚蠢,但我需要这样的东西。我在网页上展示了10个技能,每个技能都是一个表单的隐藏输入。在底部有一个“编辑”按钮。单击该按钮后,我希望每个skillName旁边都出现复选框,以便用户可以选中/取消选中它们,然后提交表单。

我现在的php代码片段是这样的:

代码语言:javascript
复制
<?php echo '<span id="skillSet">';
for($x=0;$x<count($userSkills);$x++)
        echo '<div class="skillName"><input type="hidden" name="skill[]" value="' . $userSkills[$x] . '" title="Click to select">' . $userSkills[$x] . "</div>";
echo '</span>'; ?>

<input type="button" value="Edit" onClick="someFunction()">

我可以用什么来代替某些函数来达到所需的结果?此外,如果有任何其他方法,我可以实现编辑的事情,请告诉。

提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-24 19:06:15

为所有输入提供类input_skill,如下所示:

代码语言:javascript
复制
echo '<div class="skillName"><input type="hidden" name="skill[]" value="' . $userSkills[$x] . '" title="Click to select" class="input_skill">' . $userSkills[$x] . "</div>";

然后使用此函数更改它们的类型:

代码语言:javascript
复制
<script type="text/javascript">
function ShowSkillCheckboxes() {
    var skills = document.getElementsByClassName("input_skill");
    for(var i=0; i<skills.length; i++)
        skills[i].setAttribute("type","checkbox");
}
</script>

请记住,一旦将复选框转换回隐藏类型输入,元素通过成为复选框而获得的特殊checked值就会消失。此外:隐藏的输入根本不会显示在网页上。你可以说它们有0x0像素尺寸。这意味着在单击Edit按钮时,这些复选框将弹出并扩展您的布局。

票数 1
EN

Stack Overflow用户

发布于 2013-06-24 19:53:38

谢谢你的输入,但我找到了一种解决方法。我也很抱歉,因为我最终根本没有使用隐藏的输入。如果你们中的任何人感兴趣,这个函数应该可以做到这一点:

function editSkills() { var skills = document.getElementsByClassName("skillName"); for(var i=0;i<skills.length;i++) { var value = skills[i].innerHTML; skills[i].innerHTML = '<input type="checkbox" checked name="skill[]" value="' + value + '" title="Toggle Selection">' + value; } document.getElementById('EditOrApply').innerHTML='<input type="submit" value="Apply Changes">'; }

最后一行将表单的“编辑”按钮转换为“提交”按钮。

票数 1
EN

Stack Overflow用户

发布于 2013-06-24 19:10:59

他给我的-1是贪婪和不公平的人通常的行为方式。可能他是像以前的用户那样做的(利用了他的低声誉)。无论如何,我想强调这不是为了报复,而是让用户以公平的方式评估答案

像这样吗?jsfiddle

代码语言:javascript
复制
$userSkills = array('pasta','maccheroni','pizza');
echo '<span id="skillSet">';
for($x=0;$x<count($userSkills);$x++)
        echo '<div class="skillName"><input type="hidden" name="skill[]" value="' . $userSkills[$x] . '" title="Click to select">' . $userSkills[$x] . "</div>";
echo '</span>'; ?>
代码语言:javascript
复制
<input type="button" value="Edit" onClick="$('input:hidden').attr('type','checkbox');">

你需要jquery (<script src="http://code.jquery.com/jquery-1.9.1.js"></script>)

完整的JAVASCRIPT

代码语言:javascript
复制
<input type="button" value="Edit" onClick="show(document.getElementsByTagName('input'))">

<script>
function show(val){
    for(i=0;i<val.length-1;i++){
            if(val[i].type=='hidden'){
                val[i].type='checkbox';
            }
        }
    }
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17273233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档