1

誰か助けてくれないかと思っていました。問題は、javascriptが変数を格納しておらず、機能していることです。

<script type="text/javascript" language="javascript">

var name = document.getElementById('text_field').value;

var test = "foobar";


function test_function(){
alert("hello"+test);    
}

alert('test '+test);

</script>

2番目のアラートはまったく発生せず、ボタンをクリックしてtest_function()をトリガーすると、「helloundefined」というアラートが表示されます。どうしたらいいかわからないのですが、正常に動作していたのですが、突然止まりました。これはphpページにありますが、違いはありません。

4

4 に答える 4

5

ID text_fieldの要素がない場合、残りのコードは実行されません。

于 2013-01-14T03:34:52.403 に答える
4

変更してみてください:

var name = document.getElementById('text_field').value;

var name = document.getElementById('text_field').value || "some default value;

また

var name;
if(document.getElementById('text_field')) { 
  name = document.getElementById('text_field').value 
} else { 
  name = "some value" 
}
于 2013-01-14T03:35:34.367 に答える
4

コードの残りの部分が表示されていない場合、原因は次の行である可能性があります。

var name = document.getElementById('text_field').value;

'text_field'が存在する前にスクリプトブロックを実行すると、エラーが発生し、残りのjavascriptは実行されません。その結果、アラートは表示されず、テスト変数は設定されません。DOMが存在した後、onload(またはjQueryのready関数)で実行するか、ページの最後にスクリプトブロックを配置することにより、コードを呼び出す必要があります。

于 2013-01-14T03:35:52.843 に答える
2

そのスクリプトブロックをページの下部に移動します。text_fieldはまだ存在しません。ブラウザでデバッグしている場合は、ChromeまたはFirefoxを使用し、開発ツールバーの[コンソール]ウィンドウを使用します。このようなことを教えてくれます...

于 2013-01-14T03:38:00.313 に答える