现在的位置: 首页 > 综合 > 正文

pb webfrom采用js验证用户的合法性

2014年08月29日 ⁄ 综合 ⁄ 共 1807字 ⁄ 字号 评论关闭

        pbwebfrom 由于只有数据窗口才能使用JS,所以在设计用户登录的时候,不管是采用single line eidt(sle)单行编辑框 来设计用户登录界面,还是采用数据窗口来设计用户登录界面,我们都希望能够采用JS脚本来进行提示。这样就不会产生太多的回调。所以在设计用户登录界面的时候 在提交的时候我们可以将 提交的按钮 放置到数据窗口中,这样我们就可以方便的来使用js进行验证用户登录了。

如图:

在登录的时候都是采用数据窗口来放置登录按钮。

说明:

  1  single line edit方式进行登录设计

在OPEN窗口的时候 将用户信息全部放置到一个隐藏的数据窗口中。在数据窗口中设计登录,取消按钮的时候,多增加一个字段,用来存放用户的合法性,我这里是采用的是判断记录行数,为0 不合法,大于0合法。用户的判断放置到数据窗口的CLICKED事件中,对隐藏数据窗口进行过滤,同时对登录中多增加的字段进行赋值。

JS脚本如下:

function clicked_dw_3(Sender, rownumber, objectname) {

    if (objectname = "p_1") {

        //采用JS来获取登陆用户的用户名,密码
        var username = document.getElementById("WW_0_C_sle_1").value;
        var password = document.getElementById("WW_0_C_sle_2").value;

        if (username == null || username == "" || password == null || password == "") {

            alert("用户名,密码不能为空,请重新输入");

            if (username == null || username == "") {

                //设置用户名录入框获取焦点
                var setfocus = document.getElementById("WW_0_C_sle_1")
                setfocus.focus();

            } else {

                //设置密码录入框获取焦点
                var setfocus = document.getElementById("WW_0_C_sle_2")
                setfocus.focus();

            }


        } else {

            //调用PBWEBFROM中的CALLBACK函数来进行回调验证用户是否合法
            PBDataWindow_Clicked(Sender, rownumber, objectname);

            //暂停 1秒 执行,目的是等待AJAX返回(CALLback执行完成)
            
            window.setTimeout(b,'1000');
            
            function b(){
                
                var count = document.getElementsByName("user_0")[0].value;
                if(count!="1"){
                    
                    alert("用户名,密码错误");
                    
                }
                
            }

        }


    }

2:数据窗口设计登录界面

设计方法同采用Single Line Edit一致,不同的是在获取用户名,密码的时候,采用数据窗口方式可以很好的调用PBWEBFROM中已定义好的JS函数。

js脚本如下:

function clicked_dw_1(Sender, rownumber, objectname) {

    if (objectname == "p_1") {

//采用pbwebfrom中的JS脚本函数来获取数据窗口中的登陆用户和密码;
        var username = Sender.GetItem(rownumber, "username");
        var password = Sender.GetItem(rownumber, "password");
        if (username == null || password == null) {

            alert("用户名,密码不能为空,请输入!");
        } else {

            PBDataWindow_Clicked(Sender, rownumber, objectname);
            window.setTimeout(b, "1000")

            function b() {
                var test = document.getElementsByName("a_0")[0].value;
                alert(test)
            }

        }
    }
}

 

在最后验证的时候都使用了 JS的延时函数 SetTimeout目的是等待AJAX的返回。由于PB自带JS脚本在采用AJAX的时候没有返回值。所以只能采用延时的方式来进行最后一步的验证。希望有更多的PBWEBFROM帮助资料。

 

 

 

 

 

 

抱歉!评论已关闭.