大家好,尝试进行表单检查,但我使用 javascript 所做的最基本的事情不起作用,知道我做错了什么吗?
html:
<form onsubmit= "return formCheck();" method="POST" action="check.php" >
name: <input type="text" name="name" onchange="valid_name.checked = true;">
<input type="checkbox" disabled="disabled" name="valid_name">
<input type="submit" value="Submit">
</form>
JavaScript:
function formCheck() {
if(this.name.value == ""){
alert("You forgot to enter your name");
this.name.focus();
return false;
}
}
jsfiddle
http://jsfiddle.net/Lawwf/rRNBy/
提前致谢。
最佳答案
fiddle 有一些问题:
return formCheck();
周围没有引号——尽管此处给出的代码有引号。- 您的 JS 代码被配置为在加载时执行,这使得
formCheck
无法访问全局上下文(需要将设置更改为“不换行”)。
代码有问题:
- 在事件处理程序中,
this
是window
对象,而不是表单。 Window 已经有一个name
属性,这与您想要执行的操作相冲突。不要以这种方式工作,请考虑使用 DOM 搜索方法(例如getElementById
、querySelectorAll
等)来获取元素。
<强> Updated working example :
function formCheck() {
var el = document.querySelectorAll("input[name=name]")[0];
if(el.value == ""){
alert("Je bent vergeten je naam in te vullen");
el.focus();
return false;
}
}
关于javascript - 知道为什么当表单提交为空时不显示警报吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21369279/