首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >g.nodeName未定义

g.nodeName未定义
EN

Stack Overflow用户
提问于 2012-06-13 21:08:14
回答 1查看 5K关注 0票数 1

我正在将登录/注册页面转换为使用Ajax/jQuery。因此,这两种表单之间有很多共同的验证功能。我使用jQuery的一个方面是根据输入向用户输出错误消息。虽然表单共享相似的元素ID,但类名不同。

因此,为了检查用户名,我有

代码语言:javascript
复制
if ($(":input").is('.registerName')){
   //Username belongs to the registration form, so check if current entry is 
   //valid and not taken.  Output error message otherwise

}  else {
   //username belongs to the login form, so check if current entry exists in database
   //output username/password error depending on catch
}

我经历过一些奇怪的事情。

首先,上面的代码返回一个g.nodeName is undefined error。如果我将初始条件更改为

代码语言:javascript
复制
if ($("input#username").is('.registerName'))

Firebug中也会出现相同的错误。

然而,

代码语言:javascript
复制
if ($("#username").is('.registerName'))

代码语言:javascript
复制
if ($("#username").hasClass('registerName))

都失败了,登录验证部分执行。

那么,如何在没有g.nodeName未定义错误的情况下,根据类名获得正确的代码块来执行呢?

编辑

要澄清的是,同一页上没有两份表格。代码功能在javascript中。我指的是不同页面上的两个单独的HTML表单,它们调用相同的JS函数,唯一的区别是错误消息输出中的文本。

编辑2

JFiddle示例:这里

“清除”文本框不适用于小提琴,但我认为您可以了解我所要做的事情的要点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-13 21:57:58

我不能复制你所得到的确切问题,但是试一试

代码语言:javascript
复制
if ($(this).is('.registerName'))

而不是。这样,您就会知道它只查看发生keyup事件的特定元素。$(':input')将查找页面上的所有输入。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11023325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档