• jquery插件formValidator的ajaxValidator传参数问题


    最近在用formValidator插件,遇到一个问题。当我想用ajaxValidator的url传参数时,$("#tbName").val()、document.getElementById("tbName").value$("#tbName").attr("value")都不行,后来终于找到原因了,其实是$(document).ready(function () {的原因,所以总是取到name=“”值,那怎么办呢?

    查找了很多资料,发现原来formValidator本事已经对url做处理了,默认把tbName这个ID作为参数名,

    只要在checkuser.ashx调用context.Request.Params["tbName"].ToString().Trim()取值就行,已经验证过,此方法一定有效,示例代码如下:

    JavaScript:

    $(document).ready(function () {
        $.formValidator.initConfig({ formID: "form1", theme: "baidu", debug: false, submitOnce: true, 
                onError: function (msg, obj, errorlist) {
                    $.map(errorlist, function (msg) {
    
                    });
                    alert(msg);
                },
                ajaxPrompt: '有数据正在异步验证,请稍等...'
            });
            $("#tbName").formValidator({ onShow: "请输入用户名", onFocus: "用户名至少5个字符,最多10个字符", onCorrect: "该用户名可以注册" }).inputValidator({ min: 5, max: 10, onError: "你输入的用户名非法,请确认" })//.regexValidator({regExp:"username",dataType:"enum",onError:"用户名格式不正确"})
            .ajaxValidator({
                dataType: "json",
                async: true,
                url: "action/checkuser.ashx?command=check&key=" + $("#tbName").attr("value"),
                success: function (data) {
                    if (data=="1") return true;
                    if (data=="0") return false;
                    return false;
                },
                buttons: $("#button"),
                error: function (jqXHR, textStatus, errorThrown) { alert("服务器没有返回数据,可能服务器忙,请重试" + errorThrown); },
                onError: "该用户名已注册,请更换用户名",
                onWait: "正在对用户名进行合法性校验,请稍候..."
            }).defaultPassed();
    });

    checkuser.ashx:

    public void ProcessRequest (HttpContext context) {
            switch (context.Request.Params["command"].ToString())
            {
                case "check": CheckUser(context); break;
            }
        }
        
        public void CheckUser(HttpContext context)
        {
            string res = "1";
            StringBuilder strBul = new StringBuilder();
            string name = context.Request.Params["tbName"].ToString().Trim();
            //注:context.Request.Params["key"].ToString()为“”,此传值无效。
            if(name.Equals("12345a")){res="0";}
            strBul.Append(res);
            context.Response.Write(strBul);
        }

    注意:此方法只能在this.ID即本控件(这里是$("#tbName")),才能在ashx里动态取值。

     
  • 相关阅读:
    Codeforces 1322B
    面向对象案例
    0428面向对象2.0
    0427 面向对象初识
    0427数组相关思想
    0426数组操作
    Eclipse使用技巧
    数组汇总0426
    0424数组练习
    数组习题练习0424
  • 原文地址:https://www.cnblogs.com/ding2011/p/3517019.html
Copyright © 2020-2023  润新知