jquery validation engine ajax验证,在django中应用jQuery-Validation-Engine的ajax方式验证用户名...

jQuery-Validation-Engine是一个相当不错的表单验证插件,用ajaxUserCall可以实现不刷新验证用户名的

功能,但它的例子中,服务器端是用java和php来验证的,那如何用在django中呢,下面我来说下,用这个

方法也可以验证email的唯一性,随你的应用了。

在url中定义:

url(r'^ajaxvalidateusername/$', ajaxvalidateusername, name='userena_ajaxvalidateusername'),

在views.py中:

def ajaxvalidateusername(request):

fieldId = request.GET.get('fieldId')

username = request.GET.get('fieldValue')

try:

user = User.objects.get(username__iexact=username)

except User.DoesNotExist:

info = _('This username is validate.')

is_validate = True

else:

info = _('This username is already taken.')

is_validate = False

result = [fieldId, is_validate, info]

json = simplejson.dumps(result)

return HttpResponse(json)

在forms.py中:

username_attrs_dict = {'class': 'validate[required,custom[cjusername],ajax[ajaxUserCall]] '}

USERNAME_RE = r'^[a-zA-Z]{1}([\.\w]+)$'

class yourForm(forms.Form):

username = forms.RegexField(regex=USERNAME_RE,

max_length=30,

widget=forms.TextInput(attrs=username_attrs_dict),

label=_("Username"),

error_messages={'invalid': _('Username must be started with letters, and contain only letters, numbers, dots and underscores.')})

在模板中:

{{ form.username }}

在jquery.validationEngine-zh_CN.js添加和修改以下内容

"cjusername": {

"regex": /^[a-zA-Z]{1}([\.\w]+)$/,

"alertText": "* 必须以字母开始,至少两个字符"

},

// --- CUSTOM RULES -- Those are specific to the demos, they can be removed or changed to your likings

"ajaxUserCall": {

"url": "/ajaxvalidateusername/",

// you may want to pass extra data on the ajax call

"extraData": "",

"alertText": "* 此名称已被其他人使用",

"alertTextLoad": "* 正在确认名称是否有其他人使用,请稍等。"

},

搞定!

阅读(3208) | 评论(0) | 转发(0) |

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值