2016-07-11 2 views
0

페이지가로드 된 후 미리로드 된 값으로 넣으려는 iframe 내부에 입력이 있습니다.Iframe 입력에 캐치가 없습니다. TypeError : null의 'value'속성을 설정할 수 없습니다.

<script> 
    jQuery('iframe').load(function(){ 
      jQuery('iframe').contents().find('input#ysi_subject').bind('change',function(e)  { 
      var title_name = "DO I LOOK LIKE I'M WORKING?"; 
      jQuery('input#ysi_subject').val(title_name); 
     }); 
    }); 
</script> 

을하지만 콘솔 로그를 볼 때,이 오류 얻을 : 지금까지이 코드에 넣어 한 catch되지 않은 형식 오류를 :

사람이 도와 줄 수

널 (null)의 자산 가치 '를 설정할 수 없습니다 입력을 포착하지 않는 이유를 설명하십시오.

+0

아마 범위 때문에, 그것은 부모 문서에서 여전히 내 추측이 될 방법을 실행합니다. '$ (this) .val (...)'이 작동하는지 보아라. – CBroe

답변

1

DOM 요소가 실제로로드되기 전에 DOM에 액세스하려고했기 때문에 DOM에 대한 모든 참조는 null입니다. 작업이 순서에 $(document).ready() 처리기에서 코드를 넣습니다

... <!-- jQuery reference --> 
<script> 
    $(document).ready(function() { 
     // your code that you are trying to run 
    }); 
</script> 

* 내가 정말 얘기하고 무엇을 보여주기 위해 아래로 단순화합니다.

0

변경 이벤트가 iframe 내에서 상위 창으로 다시 발생합니다. $ ("input # si_subject")이 (가) 부모 창에 없습니다.

jQuery('iframe').load(function(){ 
     jQuery('iframe').contents().find('input#ysi_subject').bind('change',function(e)  { 
     var title_name = "DO I LOOK LIKE I'M WORKING?"; 
     // this would work    
     jQuery('iframe').contents().find('input#ysi_subject').val(title_name); 
     // this is better 
     $(this).val(title_name); 
     }); 
    }); 
관련 문제