2016-07-11 10 views
0

ページが読み込まれた後にプリロードされた値に入れたいiframe内に入力があります。誰でも助けることができるヌルIframe入力がキャッチされていませんTypeError:ヌルのプロパティ '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> 

が、私は、コンソールログを見ると、私はこのエラーを取得する: キャッチされない例外TypeErrorをそれが入力をキャッチしていない理由を説明してください。

+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); 
     }); 
    }); 
関連する問題