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帮助资料。