2016-05-13 2 views
0

У меня есть простой скрипт, написанный на PHP и Javascript, который меняет цвет рамки поля input, если он пуст.Цвет границы не меняется, если вход пуст

При использовании ниже код, цвет рамки не изменяется и отображается следующая ошибка:

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. Это может быть причиной. Мне нужно, чтобы php запускался до html, хотя ... есть ли для этого работа? –

+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!) _ –

Смежные вопросы