onchange with alert not working in ie

2019-07-06 13:50发布

问题:

javascript based tag ( type ='file' ) created

and add one attribute in that tag

that attribute name onchange, i will assign alert

But alert is not come when choice the new file in internet explore.

choicefile.setAttribute("onChange", "alert('test')");

回答1:

You can do two ways,

1.. Using HTML, add onchange event inline

<input type="file" id="file_select" name="file_select" value="" onchange="alert('File selected')" />

Demo: http://jsfiddle.net/CS3xJ/1/

2.. Using JS,

  choicefile.onchange = function(){
     alert('File selected')
  }

Demo: http://jsfiddle.net/CS3xJ/2/



回答2:

Try with this:

choicefile.onchange = function() {alert("test");};


回答3:

Your code seems correct. Something particular with IE is, if you put higher security level, you need to allow scripts and activeX content when you load the website.



回答4:

There is actually a difference between setAttribute and attachEvent. Here is an example using attachEvent (for IE) and addEventListener (standards) to add the event.

Also, not that the event handler is a function, rather than a string:

var eventHandler = function () {
    alert("Test");
}

if (choicefile.addEventListener) {
  choicefile.addEventListener('change', eventHandler , false);
} else if (choicefile.attachEvent)  {
  choicefile.attachEvent('onchange', eventHandler );
}


回答5:

try onclick="javascript:alert('test');" instead of onchange. Old ie versions and compatibility modes don't support onchange very well.