У меня есть форма, которую я хочу, чтобы она была проверена и проверена блоком try-catch плюс две другие функции. Вот что у меня есть: HTML:Сначала проверьте ошибки перед отправкой
<h5>Please enter your name below</h5>
<form name="textForm">
<label for="name">First name:</label>
<input type="text" name="fname" id="name">
</form>
<h5>Please enter your e-mail below</h5>
<form name="mailForm">
<label for="email">Email:</label>
<input type="email" name="email" id="email">
</form>
<form action="">
<label for="height">Your height:</label>
<input type="text" placeholder="in centimetres" name="personHeight" id="height" />
<br></br>
<input formaction="mailto:[email protected]" onclick="heightCheck();validateTextForm();validateMailForm();" type="submit" value="Submit all" id="submit" method="post" formtarget="_blank" />
<br></br>
<p id="mess"></p>
</form>
JS:
function validateTextForm() {
var x = document.forms["textForm"]["fname"].value;
if (x == null || x == "") {
alert("First name must be filled out");
return false;
}
}
function validateMailForm() {
var z = document.forms["mailForm"]["email"].value;
var atpos = z.indexOf("@");
var dotpos = z.lastIndexOf(".");
if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= z.length) {
alert("Not a valid e-mail address");
return false;
}
}
function heightCheck() {
try {
var x = document.getElementById("height").value;
if (x == "")
throw "enter your height";
if (isNaN(x)) throw "not a number";
if (x > 250)
throw "height is too high";
if (x < 80)
throw "height is too low";
} catch (err) {
var y = document.getElementById("mess");
y.innerHTML = "Error: " + err + ".";
}
}
Дело в том, что я хочу, чтобы это произошло заключается в следующем: Во-первых, он делает проверку формы, но после чего, если это правильно, подает также. Я попытался сначала проверить формы, прежде чем отправлять, но без каких-либо успехов. При просмотре я узнаю, что это можно сделать либо stopPropaganation
, preventDefault
, либо return false
методов, но до сих пор не знаю, как это сделать. Я расскажу о парнях, которые мне помогают. Заранее спасибо! Fiddle: Однако в скрипке он не работает должным образом, как он должен: http://jsfiddle.net/5T9sJ/
Я пытался, но каким-то образом проверить и высота функции не происходит. Только формация attr сделала. –
Вы проверили ошибки JS на консоли браузера? – Feanor
Вот что он показывает: 'Uncaught ReferenceError: e не определен asd.js: 9 Uncaught TypeError: Не удается вызвать метод 'preventDefault' неопределенного' P.S. В jsfiddle говорится, что processValidate не определен. –