-1
    <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>

我的问题是为什么我的功能无法运行???有什么不对吗?哪位前辈能教教我错在哪里??

我已经编辑并加上了表单名称和功能它是如何工作的

我不知道是我的实施错误还是什么

4

1 回答 1

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
};

其次,不要将 JS 视为某种浏览器的 Java,它是一种完全不同的动物。像这样的东西:

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
};
于 2013-05-13T14:27:22.310 回答