2017-01-25 5 views
0

onchange 이벤트에 문제가 있습니다. 크롬과 FF에서는 잘 작동하지만 IE에서는 정상적으로 작동하지 않습니다.onchange가 IE에서 작동하지 않지만 Chrome 및 FF에서 완벽하게 실행됩니다.

<div class="panel-body panel-default upload"> 
    <div class="form-group upload"> 
     {!! Form::open(array('url'=>'scriptUpload/upload','method'=>'POST', 'files'=>true, 'class' => 'fluid ui action labeled input')) !!} 
     <label for="project" class="col-sm-6 control-label">Elementary script</label> 

      <div class="control-group"> 
       <div class="controls input"> 
        <input id="files" type="text" class="input upload" readonly> 
         <label class="col-sm-5"> 
          <span class="btn btn-primary upload"> 
           Browse&hellip; <input name='elementaryScript[]' id='elementaryScriptId' type="file" style="display: none;" multiple onchange="isUploadPossible(this)"> 
          </span> 
         </label> 

       </div> 
      </div> 
     <div id="success"> 
      {!! Form::button('Upload', array('id' => 'submitButton', 'class'=>'btn btn-primary upload', 'onClick' => 'fileExists()', 'disabled'=>'true')) !!} 
      {!! Form::close() !!} 
     </div> 
    </div> 
</div> 

을 그리고 여기에 JS의라고 기능입니다 : 여기에 코드는 그래서 기본적으로

function isUploadPossible(elem) { 
    if (elem.value == "") 
     elem.getRootNode().getElementsByTagName('button').submitButton.disabled = true; 
    else 
     elem.getRootNode().getElementsByTagName('button').submitButton.disabled = false; 

} 

, 사용자가 파일을 선택할 때, 그것은 false에 업로드 버튼의 disabled 속성을해야한다.

사용자가 업로드 할 파일을 선택하고 이전에 onclick이 (가) 해고되어야하기 때문에 onclick으로 변경해야하지만 그럴 수는 없습니다.

편집 : getRootNode 그냥 supported by Chrome and Opera 지금까지 않은 것 같습니다 있도록

Object doesn't support property or method 'getRootNode' 
+0

가 표시되어 어떤 오류? – Shubham

+0

아무런 오류가 없습니다. 버튼의 상태가 그대로 유지됩니다. 그리고 디버거를 사용하여 무슨 일이 일어나고 있는지를 확인하면 JS 함수가 호출되지 않는다는 것을 알 수 있습니다. – Papple

+0

콘솔에서 실제로이 오류가 발생했습니다 :'객체가 'getRootNode'속성 또는 메소드를 지원하지 않습니다. – Papple

답변

1

확인 : 나는 실제로이 오류가 일어날.

이 할 수있는 (매우) 더러운 방법을 발견하지만 IE, 크롬과 FF에서 작동 :

elem.parentElement.parentElement.parentElement.parentElement.parentElement.getElementsByTagName('button').submitButton;