zoukankan      html  css  js  c++  java
  • 转input file类型的value清空 简单

    转自:http://www.cnblogs.com/diony/archive/2011/04/14/2015910.html

    出于安全性考虑,JS是不能直接设置File的value值的,下面是我总结出来的方法:

    第1个方法是大多人传统做法,替换HTML代码,楼上的已经用到了,我不过是用正则优化一下;

    第2个方法利用SendKeys模拟键盘操作,需要允许浏览器调用ActiveX才行;

    第3个方法,有点像武侠小说里的"乾坤大挪移"一样,呵呵,看看就知道了!

    <html>

    <head>

    <title>把input file類型的value清空--Test by 编程浪子</title>

    <script>

    function clearMethod1() {

    var objFile
    =document.getElementsByTagName_r('input')[0];

    alert(
    "\""+objFile.value+"\"已清除");

    objFile.outerHTML
    =objFile.outerHTML.replace(/(value=\").+\"/i,"$1\"");

    }

    function clearMethod2() {

    var objFile
    =document.getElementsByTagName_r('input')[0];

    alert(
    "\""+objFile.value+"\"已清除");

    var WshShell
    =newActiveXObject("WScript.Shell");

    objFile.focus();

    objFile.createTextRange().select();

    WshShell.SendKeys(
    "{del}");

    }

    function clearMethod3() {

    var objFile
    =document.getElementsByTagName_r('input')[1];

    alert(
    "\""+objFile.value+"\"已清除"); objFile.value="";

    }

    </script>

    <head>

    <body>

    <input type="file"value="C:\abc.txt"/><br/><br/>

    <button onclick="clearMethod1();">清除大法1:李代桃僵</button><br/>

    <button onclick="clearMethod2();">清除大法2:暗渡陈仓</button>

    <br/><br/><br/><br/><br/><br/><br/>

    <input type="text"value=""/><input type="file"value="C:\abc.txt"onchange="this.previousSibling.value=this.value;"style="20"/><br/><br/>

    <button onclick="clearMethod3();">清除大法3:声东击西</button>

    </body>

    <html>

    只有方法1:李代桃僵可以用。

    方法2:暗渡陈仓—>也许是我的环境不支持ActiveX。
    方法3:声东击西—>有很大的问题,表面上看值清除了,实际上并没有清除,而且当再次选择文件时,如果所选文件与清除之前是同一文件,那么,text中是不会再显示文件路径的。
    所以,还是
    objFile.outerHTML=objFile.outerHTML.replace(/(value=\").+\"/i,"$1\"");
    才是正解
  • 相关阅读:
    Cox回归模型【生存分析】
    推荐系统整理
    推荐——基于python
    经纬度坐标数据处理——基于R
    横截面数据分类——基于R
    《利用python进行数据分析》NumPy基础:数组和矢量计算 学习笔记
    python模块hashlib & hmac
    python unittest+parameterized,单元测试框架+参数化
    使用docker安装mysql并连接
    用docker部署RabbitMQ环境
  • 原文地址:https://www.cnblogs.com/chyong168/p/2256058.html
Copyright © 2011-2022 走看看