2011-06-04 82 views
1

我有一个表格,声明创建账户,我有邮件识别码和密码,我想确保用户名是唯一的阿贾克斯:表格问题

反正是有,我可以用ajax马上做检查为用户完成输入他点击后的密码字段(或他输入用户名后点击tab键)

感谢 任何努力可以理解

回答

2

使用“的onchange”上的用户名外地的用户名,即,而后使用标准的AJAX查询。

What is the difference between onBlur and onChange attribute in HTML?

+0

我觉得每次用户在用户名字段中输入一个字符时,onchange都会被激活?那是对的吗? – koool 2011-06-04 23:11:32

+1

nope,至少在我用过的任何浏览器中都没有使用 – 2011-06-04 23:13:45

2

你可以使用(jQuery的).blur()或(标准JS).onBlur()事件上的用户名外地来触发一个AJAX调用,这样就可以立即在用户检查用户名是否是在数据库离开文本框。

+0

.blur或.onBlur仅在用户离开用户名字段后才激活 – koool 2011-06-04 23:10:50

+0

是的。模糊与焦点相反:当用户点击一个字段时,它会变得“焦点”,当用户离开一个字段时,它会失去焦点(因此会变得模糊),这会触发模糊事件。 – cabaret 2011-06-04 23:12:26

+1

即使字段不变,onblur也会被调用。没有什么大不了的,但onchange会消除不必要的检查 – 2011-06-04 23:12:35

0

,你可以:

  1. 绑定一个focus event到用户名字段
  2. 然后在此功能检查,如果用户名已被输入
  3. 如果是使用AJAX方法来对面发送用户名要检查的服务器
  4. 从服务器端收到AJAX请求的响应,并在前端进行适当响应
2

关于onchange的唯一情况是它何时启动,以及它如何在浏览器中工作。我可能会与onblur一起确保用户实际上完成了现场。如果在每次按键事件完成时都会发生onchange,那么最终会出现大量无关的ajax调用,从而导致系统崩溃。再次,onblur将是我的选择。

+1

koool,我仍然会建议当他们按任何提交按钮时,你有一个最后一次验证。 – hivie7510 2011-06-04 23:17:31

+0

@ hivie7510我很感谢您的建议,请你解释为什么这样做有益? – koool 2011-06-04 23:20:42

+1

你知道,JavaScript是一件有趣的事情,有趣的事情并不总是做我们希望他们做的事情。以同样的方式,您可以在用户界面中进行验证,然后再次在业务逻辑中进行验证,您可能需要在此处进行验证。我看待安全性和数据保护等方面的方式是接口是安全性的建议,但业务逻辑(数据层,数据库等)是规则。由于我通常在分布式系统中工作,因此我不得不在每个级别上进行验证,因为我无法真正保证下面的级别已经完成或正确完成了它。 – hivie7510 2011-06-04 23:25:30