我是一位没有经验的网页开发人员,使用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");
}
};
};
答案 0 :(得分:1)
您没有在找到的zip上执行此功能。
var zip=document.getElementById("zipbox");
allnumeric(zip);
答案 1 :(得分:0)
如果您不想添加ID(无法理解原因):
演示: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;
答案 2 :(得分:0)
其中一个问题可能与jsfiddle的工作方式有关。我不得不添加&#34; window.formValidation = formValidation&#34;这样就可以找到你在onClick中定义的formValidation函数。其次,你有一个全数字函数,但它没有被调用。
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
答案 3 :(得分:-2)
你的元素没有id?改变如下
<input id="zipbox" type="text" name="zipbox">
然后从那里调试