js中post提交数据时的错误

 function postData() {  //传送数据
    var myForm = document.createElement('form');
    myForm.method = 'post';
    myForm.action = 'a.jsp';
    var inputs = myForm.getElementsByTagName('input');
    var i;
    for (i = 0; i < inputs.length; i++) {
        var myInput = document.createElement('input');
        myInput.type = inputs[i].type;
        myInput.name = inputs[i].name;
        myInput.value = inputs[i].value;
        myForm.a(myInput);
    }
    document.body.a(myForm);
    myForm.submit();
    document.body.removeChild(myForm);
}

function checkSpecificKey(input) {   //根据用户输入的内容,检测是否非法
    var specialKey = "#$%\^*\'\"\+; ";//Specific Key list
    var flag = false;
    for (var i = 0; i < specialKey.length; i++) {
        var char = specialKey[i];
        flag = (input.indexOf(realkey) >= 0);
        if (flg) {
            alert('请勿输入特殊字符:(# $ % ^ \'" +或者空格 ');
            return false;
        }
    }
    return true;
}

window.onload = function () {
    function myClick() {   // 提交按钮点击事件
        alert("hah");  // 这里无法弹出提示框
        var myForm = document.getElementByTagName('form');
        var inputs = myForm.getElementsByTagName('input');
        var submit_flag = false;
        for (var i = 0; i < inputs.length; i++) {
            submit_flag = checkSpecificKey(inputs.value);
        }
        if (submit_flag)  // 没有非法输入,则post提交数据
        {
            postData();
        }
    }
}

业务逻辑为,判断每个input的内容,若全都合法,就提交数据。
可是在测试myClick()函数实现中,alert测试框无法弹出。
本人对js了解不多,希望得到大家的帮助,谢谢!

在页面开f12找到js文件,进行调试,看下是哪里的问题(至于怎么调试,可以百度一下 很多的)

打开f12 在alert("hah")前加上debugger 看下有没有执行到这
再看下console里面有没有报错

为什么要将function放在window.onload里面,有这个必要吗?如果是想调用,写在外面,如果想加载页面后执行,去掉function

alert不执行是由于myClick函数是window.onload匿名函数的私有函数,而你在提交按钮时调用的myClick函数必须是全局函数,解决办法:
1,直接将myClick函数写在全局,也就是楼上提供的方法

 function myClick() {   // 提交按钮点击事件
        alert("hah");  // 这里无法弹出提示框
        var myForm = document.getElementByTagName('form');
        var inputs = myForm.getElementsByTagName('input');
        var submit_flag = false;
        for (var i = 0; i < inputs.length; i++) {
            submit_flag = checkSpecificKey(inputs.value);
        }
        if (submit_flag)  // 没有非法输入,则post提交数据
        {
            postData();
        }
    }

2,在匿名函数中暴露myClick接口,使全局能够访问myClick函数

 window.onload = function () {
    window.myClick = function() {   // 提交按钮点击事件
        alert("hah");  // 这里无法弹出提示框
        var myForm = document.getElementByTagName('form');
        var inputs = myForm.getElementsByTagName('input');
        var submit_flag = false;
        for (var i = 0; i < inputs.length; i++) {
            submit_flag = checkSpecificKey(inputs.value);
        }
        if (submit_flag)  // 没有非法输入,则post提交数据
        {
            postData();
        }
    }
}

这样都可以在提交按钮访问到myClick函数