'对象不是函数'-onClick事件

amp;#39;Object is not a functionamp;#39; - onclick event(amp;#39;对象不是函数amp;#39;-onClick事件)
本文介绍了'对象不是函数'-onClick事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我开始之前,否,我找不到分号问题,并且我没有向函数传递任何值。

当我尝试从控制台执行函数"login()"时,它工作得很好,但是当我单击一个HTML输入按钮来调用它时,我得到"未捕获的TypeError:Object不是一个函数"。顺便说一下,这是Chrome的。

var aj=new XMLHttpRequest();
var loginf=document.forms["login"];
var regf=document.forms["reg"];

function login(){
var errors=document.getElementById("login_err");
var errs=[];
var uname=loginf['uname'];
var pass=loginf['pass'];
var unameVal=uname.value;
var passVal=pass.value;

if(unameVal.length<4 && unameVal.length>0){
    errs.push("Username too short. Try again please.");
}
else if(unameVal.length>18){
    errs.push(innerHTML="Username is too long. Try again please.");
}
else if(unameVal.length==0){
    errs.push("Please enter a username.");
}

if(passVal.length<8){
    errs.push("Password too short. Try again, please.");
}
else if(passVal.length>30){
    errs.push("Password is too long. Try again please.");
}

if(errs.length==0){
    aj.onreadystatechange=function(){
        if(aj.readyState>=4 && aj.status==200){
            if(aj.responseText=="suc"){
                window.location="/new.php";
            }
        }
    }
    aj.open("POST","/inc/php/core.php",false);
    aj.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    aj.send("login=true&data="+data);
}
else{
    errors.innerHTML="<ul>";

    for(var x=0;x<errs.length;x++){
        errors.innerHTML+="<li>"+errs[x]+"</li>";
    }

    errors.innerHTML+="</ul>";
}
}

function reg(){

}

然后按输入按钮..

<input type="button" class="submit" value="Log in" style="width:25%" onclick="login();"/>

我看不出代码有什么问题。

如果您能在此代码中找到Waldo,请提前表示感谢。

jsFdle此处:http://jsfiddle.net/6sa7M/2

登录

原来函数名"推荐答案"既是对窗体的引用,也是对函数的引用。

我把"login()"改成"loginUser()",在控制台输入"login",返回表单,确实有冲突。

再次感谢您的帮助,特别感谢Marc的真实答案。

这篇关于&amp;#39;对象不是函数&amp;#39;-onClick事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)