<script>
function checkName(){
var tmpName = document.getElementById("name");
if( tmpName.value.length == 0 ){
alert( "Name cannot be empty" );
return false;
}
else
return true;
}
function confirmForm( formObj ){
var nameBool = new Boolean();
var errorName = "";
nameBool = checkName();
if( nameBool == false )
errorName = "Invalid data in input name !";
return window.alert( "You have this error : \n " + errorName + "\n" + errorID );
}
</script>
<form name=reviewform onsubmit="return confirmForm(reviewForm)" method=POST >
<p>Name : <input type="text" id="name" ></p>
<p>ID : <input type="text" id="id" ></p>
<input type="submit" value="Click here!">
</form>
我的问题是为什么我的功能无法运行???是不是错了?任何高年级的人都可以教我哪里错了吗?
我已编辑并加上表单名称和功能如何工作
我不知道是不是我的执行错误或什么
答案 0 :(得分:1)
这两个功能,虽然它们需要一些工作,你显然需要了解你的JS知识,可以运行,你只需要调用它们。就目前而言,您刚刚定义了2个功能。没别了。
其他问题,行/行:
//second line:
var tmpName = document.getElementById("name");
在这里,你不能确定这个元素是否已被引导,或者DOM还没有准备好,所以要小心,只需将整个代码包装在一个处理程序中:
window.onload = function()
{
//your code here, this gets executed after the page is fully loaded
};
接下来,don't think of JS as some sort of Java-for-browsers, it's a completely different animal。像:
var nameBool = new Boolean();
var errorName = "";
最好写为声明变量,但不指定任何内容:
var nameBool, errorName;
如果你想确定nameBool是一个布尔值,只需这样指定:
nameBool = !!checkName();//double bang
您似乎也在尝试验证表单或处理各种提交事件。为什么不使用addEventListener
呢?或者,如果你坚持:
document.getElementById('formId').onsubmit = function(e)
{
//get event object:
e = e || window.event;
//this references form, as does (e.target || e.srcElement), you can access the elements it contains, and check them one by one
};