Я неопытный веб-разработчик, записывающий регистрационную форму с использованием JS для проверки на стороне клиента и PHP для серверной части. Я застрял, пытаясь просто проверить переменную и убедиться, что она переходит к JS. Я слышал, что jsfiddle не любит формы, поэтому я изменил код своей скрипки, чтобы не включать теги формы. При выполнении этого кода код ничего не делает. Может кто-нибудь помочь, пожалуйста? Кроме того, следует ли устанавливать Apache для тестирования формы локально или Chrome сможет справиться с этим? Я знаю, что мне придется в конечном итоге протестировать PHP, но я просто пытаюсь заставить JS-валидацию работать прямо сейчас.
HTML:
<p>Zip Code: <input type="text" name="zipbox"></p>
<p><input type="submit" name="submit" onClick="formValidation()" value="Submit" /></p>
JS:
function formValidation()
{
var zip=document.getElementById("zipbox");
function allnumeric(zip)
{
var numbers = /^[0-9]+$/;
if(zip.value.match(numbers))
{
alert("Everything OK");
}
else
{
alert("Numbers only please");
}
};
};
Вы не выполняли функцию на zip, которую вы нашли.
var zip=document.getElementById("zipbox");
allnumeric(zip);
И в случае, если вы не хотите добавлять идентификатор (не можете понять, почему):
Демо: JSFiddle
HTML
<form name="zipform">
<p>Zip Code: <input type="text" name="zipbox" /></p>
<p><input type="submit" name="submit" value="Submit" /></p>
</form>
JS
function formValidation() {
var zip=document.forms["zipform"].elements["zipbox"];
var numbers = /^[0-9]+$/;
if(zip.value.match(numbers)) {
alert("Everything OK");
} else {
alert("Numbers only please");
return false;
}
return true;
}
document.forms["zipform"].elements["submit"].onclick=formValidation;
Одна из проблем может быть связана с тем, как работает jsfiddle. Мне пришлось добавить "window.formValidation = formValidation", чтобы была найдена функция formValidation, определенная вами в onClick. Во-вторых, у вас была универсальная функция, но она не вызывалась.
function formValidation()
{
var zip=document.getElementById("zipbox");
function allnumeric(zip)
{
var numbers = /^[0-9]+$/;
if(zip.value.match(numbers))
{
alert("Everything OK");
}
else
{
alert("Numbers only please");
}
};
allnumeric(zip);
};
window.formValidation = formValidation
у вашего элемента нет идентификатора? изменить, как показано ниже
<input id="zipbox" type="text" name="zipbox">
затем отлаживается оттуда
allnumeric()
.