Delphi下IntraWeb的ScriptEvent中的控件数值传递问题 ( 积分: 100 )

  • 主题发起人 主题发起人 waring_id
  • 开始时间 开始时间
W

waring_id

Unregistered / Unconfirmed
GUEST, unregistred user!
在Delphi7.06版下安装了IntraWeb7.1.0.5在做一个测试时发现在控件的ScriptEvent事件中不能取得本控件的值。(win2000 srv+access+delphi7.06)
我的操作方法如下:
1:新建一IntraWeb的应用程序,设好它的DataMoudle,使用ADO联接,保证表的联接成功。
2:在它的表单上放置IWDBEDIT控件,设置好它的DataSource和DataField,保证连接成功。
3:在表单的JavaScript中写入函数如下:
function mess()
{ var s='';
s+=SubmitForm.IWDBEDIT1.value;
if(SubmitForm.IWDBEDIT1.value)
alert('Is not Null'+s);
else
alert('Is Null');
}
4: 在IWDBEDIT1控件的ScriptEvent的onBlur中输入 mess()
5: 运行程序,其中的iwdbedit1控件能正常显示内容,选定iwdbedit1使其成为焦点控件,当失去焦点时,弹出窗口,显示内容为 Is Null。也就是说不能正常取到控件中的值。
6:试着在mess()中给它的一个值,它能按正常显示所给出的值。
现在不知能用什么方法能在它的事件中取控件的值?望各位指教。
 
在Delphi7.06版下安装了IntraWeb7.1.0.5在做一个测试时发现在控件的ScriptEvent事件中不能取得本控件的值。(win2000 srv+access+delphi7.06)
我的操作方法如下:
1:新建一IntraWeb的应用程序,设好它的DataMoudle,使用ADO联接,保证表的联接成功。
2:在它的表单上放置IWDBEDIT控件,设置好它的DataSource和DataField,保证连接成功。
3:在表单的JavaScript中写入函数如下:
function mess()
{ var s='';
s+=SubmitForm.IWDBEDIT1.value;
if(SubmitForm.IWDBEDIT1.value)
alert('Is not Null'+s);
else
alert('Is Null');
}
4: 在IWDBEDIT1控件的ScriptEvent的onBlur中输入 mess()
5: 运行程序,其中的iwdbedit1控件能正常显示内容,选定iwdbedit1使其成为焦点控件,当失去焦点时,弹出窗口,显示内容为 Is Null。也就是说不能正常取到控件中的值。
6:试着在mess()中给它的一个值,它能按正常显示所给出的值。
现在不知能用什么方法能在它的事件中取控件的值?望各位指教。
 
[:(]怎么没人回复呢,高手现身啊
 
兄弟建议不要随便用INTRAWEB,JAVASCRIP 在评估版好象有问题,在本纪测试一般没有问题,但别的客户端不能访问, 更换7.2.12试一下!
 
我用的这个是破解版,然后我通过花生壳做了一个映谢,从外网来访问它,发现可能触发它的脚本事件。在近来的调试中,发现可以使用另外一个变通的方法来实现。在控件的EventScript事件中可以这样来取得它的值 : this.value
1 现在设iwdbedit1控件中的值是1999 在delphi可能这样取到: iwdbedit1.text
2 但在控件的eventscript中就只能这样取了 : alert(this.value);
但是这样又会引出另一个问题,在intraweb中的控件的事件中(只能用JavaScript),它对控件值的控制转换全都认为是字符型的。例如我在控件的onKeyPress事件中这样写
if (event.keyCode < 45 || event.keyCode > 57) event.returnValue = false; 这样在客户端的输入没有任何作用也就是不能输入,但是换成alert(event.KeyCode)时能返回正确的编码,比如输入1 则返回47。但是我不知怎么才能返回它的正常值。我希望它能返回ASCII字符,也不是编码,因为在赋值时它的值是编码值。
设在onKeypress中输入
this.value='';
this.value=this.value+event.keyCode;
alert(this.value);
在运行时输入12时里面就变成了4748了,数字还好说,减去一些就行了,但如果是字符呢
 
[:(]等了很久了,真心希望能有人帮忙搞定它。
 
兄弟,将你的INTRAWEB 发过来给我测一下看看, 7.1.05网上下的全部有问题, 我的是OK的! 我的7.2.12安装程序找不到了,要不发给你.email: liudechang@memtechchina.com
 
ldc555
我这里的测试中在它的服务器端运行是OK的,估计应不是IntraWeb的问题,就像先前的问题一样,可以变通一下就可以了,现在就是不知怎么写引用的函数。不过真的很谢谢你。
 
评估版测试中在它的服务器端运行是OK的,但客户端访问会有会话问题。
 
ldc555
谢谢你的关注,我试过了,这方面应没什么关系的,我将程序发布成NT的服务,然后通过Internet来访问它,发现写的程序在客户端运行是没有问题的,但是实在想不清楚在函数写的过程中为什么不能引用控件。
 
后退
顶部