不显示返回值以及如何使用输入按钮传递值

时间:2018-11-17 09:32:03

标签: javascript

当我返回值“文件名”,并尝试使用document.getElementById(“ getfilename”)。innerHTML = filename显示该值时,该值不显示。我试图使用宏录制来检查值'filename'的保持,是的,它保持了我想要的值。但在尝试打印时不显示。我的代码有什么错误吗?

html代码:

<form>
    <input type='file' id="poem" accept='text/plain' onchange='printPoem(event)' >
</form>

<script>
    if (filename !== null){
        document.getElementById("getfilename").innerHTML = filename;
        //document.write(filename);
     }
</script>

js代码:

function printPoem(event) {
    var input = event.target;
    var reader = new FileReader();
    reader.onload = function(){
        var text = reader.result;
        //document.write(reader.result.substring(0, 200));
        var fullPath = document.getElementById("poem").value;

        if (fullPath) {
            var startIndex = (fullPath.indexOf('\\') >= 0 ? 
            fullPath.lastIndexOf('\\') : fullPath.lastIndexOf('/'));
            filename = fullPath.substring(startIndex);
            if (filename.indexOf('\\') === 0 || filename.indexOf('/') === 0{
                filename = filename.substring(1);
            }
                //alert(filename);
        }
        document.getElementById("displayPoem").innerHTML = text;
    };
    reader.readAsText(input.files[0]);              
    return(filename);
}

第二个问题,如何使用这些输入按钮传递试图尽早显示的值(文件名)?

<input type="button"  class="button" value="Visualize" onclick="window.location.href='visualization.html'">

1 个答案:

答案 0 :(得分:0)

  1. Html标签将从上到下呈现,当呈现<script>标签时,将执行其中的javascript。我认为您的问题是更改事件尚未触发,程序中没有文件名变量。可以将这些代码放入printPoem函数中。
  2. 我认为您可以设置一个全局变量,事件将更改此全局变量。