??AJAX??server???

2011-12-28 11:30:58by ????

通过AJAX执行server端校验

概述

有些时候,页面上的数据校验可能会涉及到数据库中的多张表,逻辑比较复杂,无法通过javascript来校验,这个时候可以考虑通过AJAX执行server端校验

定义

通过AJAX执行server端校验具体是指:将界面上的数据通过Aurora.request方法发送至服务端,通过指定的url路径去请求某一个bm中定义的方法(一般来说,我们比较多的采用bm的execute方法来进行校验。)去调用数据库中的包来进行校验。

如果校验不成功则通过包的错误处理,向页面上抛出具体的出错信息。

如果校验成功则执行Aurora.request方法中定义的成功后的回调函数。

Aurora的request方法接受一个object类型的参数。该参数有几个特定的属性。如下表

Table 1. >Aurora.request方法参数的特定属性

属性说明
url指定该请求需要提交到的bm路径及调用该bm中的哪个方法
para需要提交的数据对象,必须满足json数据的格式
success提交成功后需要执行的函数function(response){},response参数获取返回的提交结果,可以在{}中写入需要执行的操作,或者对返回的提交结果继续进行操作
scope作用域,一般写this,表示当前作用域就行了

下面的代码,通过Aurora.request请求名为xxx的bm的execute方法对name进行校验,检验成功后弹出提示框,提示校验通过


function check_name() 
{
	var name=$('aaa_ds').getCurrentRecord().get('name');
	Aurora.request(
	{
		url: '${/request/@context_path}/autocrud/xxx/execute',
		para: 
		{
			'name':name
		},
		success: function(response) 
		{
			Aurora.showMessage('提示','校验通过');
		},
		scope: this
	}
	);
}


<a:dataSets>
	<a:dataSet id="aaa_ds" model="xxx">
		<a:fields>
			<a:field name="name" required="true"/>
		</a:fields>
	</a:dataSet>
</a:dataSets>

<a:form title="校验名称" >
	<a:textField name="name" bindTarget="aaa_ds" prompt="名称"  />
	<a:button click="check_name" text="校验名称"  />
</a:form>

		
Demo
    Attachments

      Comments

      4 Responses to the article
      1. [email protected] 留言于:2017年06月06日 14:29
        好东西。
      2. [email protected] 留言于:2017年09月11日 13:08
        1
      3. [email protected] 留言于:2017年11月17日 13:45
        嗯,感觉svc主要是写逻辑,然后再由screen调用
      4. [email protected] 留言于:2019年03月22日 14:31
        好歹也是一个公司,拜托写东西专业一点
      发表评论