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函数