【问题标题】:call another function in a main function of javascript在javascript的主函数中调用另一个函数
【发布时间】:2013-05-13 14:24:55
【问题描述】:
    <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>

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

我已经编辑并加上了表单名称和它的工作原理

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

【问题讨论】:

  • 什么功能没有运行?你怎么知道它不运行?您是如何尝试调试的?
  • 在给出的代码中,您只是定义了两个函数,而不是调用它们中的任何一个。你能说得更具体些吗?
  • Firefox、Chrome、Safari的错误控制台是否出现错误信息?
  • 没有错误信息。只是脚本也无法运行

标签: javascript html


【解决方案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
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-31
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-04
    相关资源
    最近更新 更多