javascript - 单击单选选项时显示文本框

标签 javascript html

我试图让这个函数显示/隐藏文本框元素。到目前为止,我的运气并不好。谁能告诉我如何通过将其样式设置为可见或不挂起您选择的单选选项来显示和隐藏该元素? 这是我到目前为止所拥有的。

脚本

            function hide(id)
            {
                document.getElementById(id).style.visibility='hidden';
            }

            function show(id)
            {
                document.getElementById(id).style.visibility='visible'; 
            }

html

            <div data-role="fieldcontain" data-theme="c" id="quests'+id+'">
            <fieldset data-role="controlgroup" data-type="horizontal">
            <label>Question?</label>

            <input type="radio" name="radio1" id="'+QuestionID+'_1" value="1" onClick="show("comment_'+QuestionID+'")"/>
            <label for="'+QuestionID+'_1">Yes</label>

            <input type="radio" name="radio1" id="'+QuestionID+'_0" value="0" onclick="hide("comment_'+QuestionID+'")"/>
            <label for="'+QuestionID+'_0">No</label>
            </fieldset>

            //I am trying to make these visable if yes is selected
            <textarea cols="30" rows="8" name="textarea" style="width:80%; visibility:hidden;" id="comment_'+QuestionID+'"></textarea>
            <br />
            </div>

谢谢!

最佳答案

onSelect 对单选按钮没有任何意义...它用于“选择”输入字段中的文本。请改用 onClick。但是,如果您使用 onClick,您将需要检查单选按钮是否实际被选中,因此这会使您的 JS 部分变得复杂。

既然您将问题标记为“jQuery”,那么我要做的就是:

HTML:

<div class="radioToggle" data-role="fieldcontain" data-theme="c" id="quests'+id+'">
    <fieldset data-role="controlgroup" data-type="horizontal">
        <label>Question?</label>

        <input type="radio" name="radio1" id="'+QuestionID+'_1" value="1" />
        <label for="'+QuestionID+'_1">Yes</label>

        <input type="radio" name="radio1" id="'+QuestionID+'_0" value="0" />
        <label for="'+QuestionID+'_0">No</label>
    </fieldset>

    //I am trying to make these visable if yes is selected
    <textarea cols="30" rows="8" name="textarea" style="width:80%; visibility:hidden;" id="comment_'+QuestionID+'"></textarea>
    <br />
</div>

JS:

$('.radioToggle').on('click', 'input:radio', function(){
    var parent = $(this).closest('.radioToggle'),
        textbox = parent.find('textbox');
    if ($(this).attr('id') == '1') {
        textbox.show();
    } else {
        textbox.hide();
    }
})

关于javascript - 单击单选选项时显示文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15119985/

相关文章:

javascript - 验证后的 jQuery 动态字段消失

javascript - 只有在 Safari 中悬停后,垂直对齐的文本才不会立即正确格式化

javascript - 用多个分隔符分割字符串并忽略引号中的分隔符 javascript

javascript - 如何在 AngularJS 中打印 JSON 对象的元素?

html - table 可以这样设计吗?或者别的东西会更好吗?

html - box-shadow 移除自身

javascript - 使用 Javascript 禁用一个类?

javascript - 测试配置文件 - newbee 问题

javascript - 使用 Jquery 的条件日期

html - 白色文本颜色和白色图像背景颜色问题