Javascript как-то не работает - не уверен, что я делаю не так:/

Я не уверен, что не так, поэтому я просто хотел спросить вас всех. Я хочу проверить некоторые переменные через JS, прежде чем отправлять их в свой PHP Script, но почему-то это не работает так, как я хочу, и я не уверен, почему. Вот мой пример кода:

HTML

<script src="jadd.js" type="text/javascript"></script>
<form name="jadd" action="./func/add_job.php" method="post" onsubmit="return vf()">
<a href="javascript:document.jadd.submit()">random submit</a>
...
<input type="text" size="100" maxlength="150" name="jt" />
...
</form>

Javascript (jadd.js):

function vf() {
var x=document.forms["jadd"]["jt"].value;
  if (x==null || x=="") {
    alert("Field must be filled out");
    return false;
  }
}

3 ответа

У тебя есть две проблемы отредактировал ваш вопрос.

  1. Когда вы заполняете форму программным способом, вы не запускаете событие отправки. Используйте кнопку реального отправки (<input type="submit">), а не ссылка с JavaScript вместо HTTP URI. (Вы можете использовать CSS, чтобы кнопка выглядела как ссылка, если вы действительно этого хотите).
  2. Вы пытаетесь вызвать функцию с именем vf но вы определили функцию под названием vf_addjob, вам нужно использовать то же имя!

Попробуйте использовать vf_addjob() вместо vf()

должно быть:

onsubmit="return vf_addjob()"
  1. Удалить свой a href... кнопка.
  2. Добавьте внутрь form этот <input type="submit" value="click me">

Должно выглядеть так:

<script src="jadd.js" type="text/javascript"></script>
<form name="jadd" action="./func/add_job.php" method="post" onsubmit="return vf()">
...
<input type="text" size="100" maxlength="150" name="jt" />
...
<input type="submit" value="click me">
</form>

Также было бы полезно добавить return true; в функции JS. Но это больше для читабельности кода.

Другие вопросы по тегам