当前希望写一个单选框,选中“paste”则显示粘贴框,选中“upload”则提示选择文件。

因为这两种情况只是显示不同,所以只需要用javascript来进行显示和隐藏。

最后的结果大概这样:

初始时,两个都不选中,所以粘贴框和上传按钮都不存在。

选中Paste Input:粘贴框弹出,有删除按钮和行数计数。(这个在结尾作为彩蛋更新)

选中Upload File:上传按钮出现。(这个中文显示貌似跟随系统,再更新我会改掉 )不会改:)

代码其实naive,如下:

function onClickInputMethod() {
var show = "";
var apm = document.getElementsByName("input_method_option");
for (var i = 0; i < apm.length; i++) {
if (apm[i].checked)
show = apm[i].value;
}
switch (show) {
case "0":
document.getElementById("paste_textarea").style.display = "block";
document.getElementById("upload_file").style.display = "none";
break;
case "1":
document.getElementById("paste_textarea").style.display = "none";
document.getElementById("upload_file").style.display = "block";
break;
default:
document.getElementById("paste_textarea").style.display = "none";
document.getElementById("upload_file").style.display = "none";
break;
}
}

重点是display写none的时候是隐藏,写block的时候是显示:)

我觉得也就是我脑残到写反了:)

另外,在html中,粘贴框和上传文件都要写,并且需要把display设置为none来隐藏。这跟default是无关的,

因为初始时并未点击,所以没有onClickInputMethod()的处理:)

下面贴html代码

 <div class="form-group">
<label for="input_method" class="col-sm-2 control-label">Input Method</label>
<div class="radio col-sm-10" name="input_method">
<label><input type="radio" name="input_method_option" value="0" onclick="onClickInputMethod(); checked" />Paste Input</label>
<label><input type="radio" name="input_method_option" value="1" onclick="onClickInputMethod()" />Upload File</label>
<!--hide when upload checked-->
<div class="form-group" style="margin:0.5% 0.5% 1% 0%; display: none;" id="paste_textarea">
<textarea class="form-control" name="paste_input" onkeypress="handleRowNum(event)" id="paste_input" rows="4"></textarea>
<span>
<button type="button" style="margin-top:0.5%;" class="btn btn-primary" onclick="onClickDelete()">Delete</button>
<label>Target Count: <span id="target_count">0</span></label>
</span>
</div>
<!--hide when paste checked-->
<div class="form-group" style="margin:0.5% 0.5% 1% 0%; display: none;" id="upload_file">
<input type="file" name="files" />
</div> </div>
</div>

// 这个代码插入得真丑:)


彩蛋彩蛋

清空textarea只要一行代码:

function onClickDelete() {
$("#paste_input").val("");
// target_count是统计行数的,当然我这里需要统计序列,和行数还不一样。
document.getElementById("target_count").innerHTML = 0;
}

javascript隐藏和显示元素以及清空textarea的更多相关文章

  1. 通过jquery隐藏和显示元素

    通过jquery隐藏和显示元素 调用jquery本身提供的函数 $("xxx").hide();//隐藏xxx $("xxx").show();//显示xxx ...

  2. 如何通过jquery隐藏和显示元素

    以下几种方式可以隐藏一个元素:1,CSS display的值是none.2,type="hidden"的表单元素.3,宽度和高度都显式设置为0.4,一个祖先元素是隐藏的,该元素是不 ...

  3. arcgis for javascript 隐藏或显示底图

    arcgis for javascript展示地图的时候,有图层的概念,一层一层的,类似photoshop,在应用界面上控制图层的显隐,是极常见的功能. 但是,如果是控制底图的显示或隐藏呢,怎么搞? ...

  4. HTML元素隐藏和显示

    在web前端开发过程中,经常会用到隐藏和显示元素的方法 总结:1.通过JS或Jquery控制          2.通过CSS样式控制 一.Js或jquery (jquery为例) 1.隐藏元素 使用 ...

  5. 如何使用T-SQL备份还原数据库及c#如何调用执行? C#中索引器的作用和实现。 jquery控制元素的隐藏和显示的几种方法。 localStorage、sessionStorage用法总结 在AspNetCore中扩展Log系列 - 介绍开源类库的使用(一) span<T>之高性能字符串操作实测

    如何使用T-SQL备份还原数据库及c#如何调用执行? 准备材料:Microsoft SQL Server一部.需要还原的bak文件一只 一.备份 数据库备份语句:user master backup ...

  6. jQuery--Dom元素隐藏和显示原理(源码2.0.3)

    对于Dom元素显示和隐藏的操作,jQuery提供了比较方便的函数,我们也经常使用: 1. show() : 显示Dom元素2. hide() : 隐藏Dom元素3. toggle() : 改变Dom元 ...

  7. 基于特定值来推断隐藏显示元素的jQuery插件

    jQuery-Visibly是一款小巧简单的jQuery隐藏显示元素插件.该插件依据某个元素的值,例如以下拉框的值.输入框的值等来推断是否显示某个指定的元素. 用于推断的值能够是单个值,或者是多个值, ...

  8. jQuery控制元素隐藏和显示

    1.jQuery隐藏和显示效果 通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: $("#hide").click(functio ...

  9. 【功能代码】---5 JS通过事件隐藏显示元素

    JS通过事件隐藏显示元素 在开发中,很多时候我们需要点击事件,才显示隐藏元素.那如何做到页面刚开始就把标签隐藏. 有两种方法: (1) display:none    <div id=" ...

随机推荐

  1. properties文件 , properties类, 的作用

    "properties文件",是java所支持的配置文件类型.java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文 ...

  2. client的使用

    document.documentElement.clientHeight = 464 // 指窗口的可见高度的大小 document.body.clientHeight = 1577 // 指窗口的 ...

  3. pycharm 更改字体and背景颜色

    File-settings-Appearance&Behavior-Appearance-Theme File-settings-Editor-font

  4. TemplateBinding与Binding区别,以及WPF自定义控件开发的遭遇

    在上一次的文章WPF OnApplyTemplate 不执行 或者执行滞后的疑惑谈到怎么正确的开发自定义控件,我们控件的样式中,属性的绑定一般都是用TemplateBinding来完成,如下一个基本的 ...

  5. 前端WEB编辑器-------webstrom

    欲先善其事,必先利其器,如题.看到网上一篇介绍webstrom的文章,觉得功能确实强大,也知道为什么阿里巴巴的前端传到github上的文件为啥都有一个 .idea 文件,(传说淘宝内部推荐写js用we ...

  6. vue-elem-stylus 的mixin用法

    .tab border-1px{red} minxin border-1px(&color) position:relative &::after display:block posi ...

  7. TAS5508 output changing

    1.如果信号从3th通道输入,正常就是从PWM5,6输出,现在要想从PWM7,8输出,就按照以下红线部分选择DAP CH5和DAP CH6,然后写入相应寄存器产生的12 bytes的数组数据即可.

  8. 【extjs6学习笔记】1.14 初始: ViewModel

    ViewModel是一个管理特定UI组件数据的类. 可以将其视为特定视图的记录容器. 它支持与UI组件的双向数据绑定,只要用户在视图中更改数据,它具有最新的副本. 与模型不同,它不能包含代理,因此它不 ...

  9. 自己实现的简单的grid

    12年在第一家公司的时候,有过很长一段时间在前端的使用研究上.一开始的时候使用ExtJs4.0 MVC 来开发前端,觉得里面的风转的组件非常好用,Panel.window.tree等等,简化了对于前端 ...

  10. Coursera 算法二 week 3 Baseball Elimination

    这周的作业不需要自己写算法,只需要调用库函数就行,但是有些难以理解,因此用了不少时间. import edu.princeton.cs.algs4.FlowEdge; import edu.princ ...