2016-05-13 10 views
0

空であればinputフィールドの境界線の色を変更するPHPとJavascriptで書かれた簡単なスクリプトがあります。入力が空であれば境界線の色は変化しません

以下のコードを使用して、境界線の色を変更すると、次のエラーが表示されていません:

Uncaught TypeError: Cannot read property 'style' of null

<?php 
if(isset($_POST['submit'])) { 
if(empty($_POST['username'])) { 
echo' 
<script> 
document.getElementById("username").style.border = "1px solid red"; 
</script> 
'; 
} 
} 
?> 

<form method="post"> 
<input type="text" id="username" name="username"> 
<input type="submit" name="submit"> 
</form> 
+0

HTMLがロードされる前に、あなたのスクリプトが実行されています。 JavaScriptとHTMLの読み込み方法を読む –

+0

@SterlingArcherああ、それが原因かもしれない。私はHTMLの前に実行するPHPが必要です...これは回避策はありますか? –

+0

@SterlingArcher実際には、フォームが送信された後にコードが実行されます.HTMLが既に読み込まれているとは限りませんか? –

答えて

0

は、あなたのスクリプトの先頭にwindow.onload = function() {...}を追加する必要があります。

<?php 

if (isset($_POST["submit"])) { 

    if (empty($_POST["username"])) { 

     echo " 
      <script> 
       window.onload = function() { 

        document.getElementById('username').style.border = '1px solid red'; 
       }; 
      </script>"; 
    } 
} 

<form method="post"> 
    <input type="text" id="username" name="username"> 
    <input type="submit" name="submit"> 
</form> 
+0

ありがとう、私はそれが 'window.onload = function(){'をコードに追加するのと同じくらい簡単だったことを知らなかった...これはJavascript _を使用した初めてのことです(私はPHPの男です) –

関連する問題