Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改时不触发onchange事件_Javascript_Html_Browser_Dynamic_Event Listener - Fatal编程技术网

Javascript 更改时不触发onchange事件

Javascript 更改时不触发onchange事件,javascript,html,browser,dynamic,event-listener,Javascript,Html,Browser,Dynamic,Event Listener,我的html中有这样的内容,它可以工作: <input id="File1" type="file" runat="server" onchange="fileUpload(value)" /> 现在,当我进入inspect元素时,一切看起来都正常 它呈现出与原始输入相同的效果 不幸的是,它不像第一个函数那样进入函数 我喜欢这里的一些帖子: && 但是没有人能帮助我 试试这段代码 newUploadBox.onchange = fileUpload.bin

我的html中有这样的内容,它可以工作:

           <input id="File1" type="file" runat="server" onchange="fileUpload(value)"  /> 
现在,当我进入inspect元素时,一切看起来都正常

它呈现出与原始输入相同的效果

不幸的是,它不像第一个函数那样进入函数

我喜欢这里的一些帖子: &&

但是没有人能帮助我

试试这段代码

newUploadBox.onchange = fileUpload.bind(this, value);
function.prototype.bind-创建与原始函数具有相同主体的绑定函数


我添加了一个onClientClick事件处理程序来检查验证,而不是执行onchange事件侦听器

我使用了以下功能:

function FileUploadValidate() {
var input;
var thisId;
var fileInput;

input = document.getElementsByTagName("input");

for(i = 0;i < input.length; i++)
{
    if(input[i].getAttribute("type") === "file"){
        thisId = input[i].getAttribute("id"); 
        fileInput = document.getElementById(thisId);
        fileUpload(fileInput.value, thisId)

    }
}

for(i = 0;i < input.length; i++)
{
    if(input[i].getAttribute("type") === "file"){
        thisId = input[i].getAttribute("id"); 
        if(document.getElementById(thisId).style.backgroundColor === "#ff0000"){
            alert("true")
            document.getElementById("decoyBtn").innerText = "Check"
            return
        }else{
            document.getElementById("decoyBtn").style.display = "none"
            document.getElementById("btnSubmit").style.display = "inline"

        }


    }
  } 
}
函数FileUploadValidate(){
var输入;
蓟马变种;
var文件输入;
输入=document.getElementsByTagName(“输入”);
对于(i=0;i
这将解析所有“我的文件上载”输入字段。 如果一个不符合我的要求,它将不允许他们上传。 这是我能想到的在IE8中工作的最好的方法

我还使用了一个诱饵按钮,基本上就是我的“onClientClick”,因为我不想意外上传


第二个for-each循环检查所有验证的条件,如果验证了,则会将诱饵按钮从DOM上取下,并将ASP.NET按钮带入上载

您如何声明文件上载?你能提供一个小提琴/更多的代码吗?它将在现代浏览器中工作。不适用于IE8,但不适用于我的应用程序。我需要一个更具活力的解决方案。谢谢你。我仍然会投票表决。
function FileUploadValidate() {
var input;
var thisId;
var fileInput;

input = document.getElementsByTagName("input");

for(i = 0;i < input.length; i++)
{
    if(input[i].getAttribute("type") === "file"){
        thisId = input[i].getAttribute("id"); 
        fileInput = document.getElementById(thisId);
        fileUpload(fileInput.value, thisId)

    }
}

for(i = 0;i < input.length; i++)
{
    if(input[i].getAttribute("type") === "file"){
        thisId = input[i].getAttribute("id"); 
        if(document.getElementById(thisId).style.backgroundColor === "#ff0000"){
            alert("true")
            document.getElementById("decoyBtn").innerText = "Check"
            return
        }else{
            document.getElementById("decoyBtn").style.display = "none"
            document.getElementById("btnSubmit").style.display = "inline"

        }


    }
  } 
}