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 ответа
У тебя есть две проблемы отредактировал ваш вопрос.
- Когда вы заполняете форму программным способом, вы не запускаете событие отправки. Используйте кнопку реального отправки (
<input type="submit">
), а не ссылка с JavaScript вместо HTTP URI. (Вы можете использовать CSS, чтобы кнопка выглядела как ссылка, если вы действительно этого хотите). Вы пытаетесь вызвать функцию с именемvf
но вы определили функцию под названиемvf_addjob
, вам нужно использовать то же имя!
Попробуйте использовать vf_addjob()
вместо vf()
должно быть:
onsubmit="return vf_addjob()"
- Удалить свой
a href...
кнопка. - Добавьте внутрь
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. Но это больше для читабельности кода.