Button 按钮扩展

标签库对 BUTTON 标签进行了扩展,主要是为了实现与后端进行快速交互。当设置了onclick+watch属性时,所有扩展功能才生效。

使用

需要引入两个文件,注意root.button.js文件的引入要在其他表单组件如root.input.js之后。

扩展属性

与按钮操作相关的扩展属性有:

与启用禁用相关的属性有:

与提示相关的属性如下,所有以-text消息相关属性均支持 Express 字符串

与按钮外观相关的属性有:

扩展方法

扩展方法可用于事件表达式

还有一个通用的set(attr, value)扩展方法可以用,原生方法不影响使用,如click()方法。

扩展事件

按钮新增一个服务器端事件onclick+,是按钮扩展的关键属性。属性值为按钮要执行的 PQL 语句或要请求的 API 接口,属性值格式详见服务器端事件与数据相关的属性。客户端事件onclick依然可以使用。

为了配合switch按钮类型,新增两个客户端事件onclick-enabledonclick-disabled,分别当按钮切换到相应的状态下触发。
为了配合twice按钮类型,新增两个客户羰事件onclick-confirmonclick-cancel,分别当按钮确认和取消按钮时触发。

客户端事件可配合其他组件使用,比如需要监听按钮的动作,参见精简事件和表达式

可用的选择器

扩展选择器一般用来定义事件,可用的选择器只有 1 个:$('#id')$s('#id'), 其中id前面的#符号不可省略。一般情况下用不到选择器,只了解选择器的语法即可。

请求成功和失败

Button 扩展通常用于通过onclick+事件向后端发起请求,请求有以下几种状态:

大多数情况下,按钮行为都是向数据库插入或更新数据,插入数据可以返回最新数据的自增id,更新数据可以返回受影响的行数,使用non-zero规则即可进行判断。

组件监听

Button 一般情况下会配合其他表单组件使用,如文本框等。Button 提供了对其他表单组件进行监听的功能,已在表单输入未完成和完成时作出正确的响应,决定是否禁用按钮。这个响应是自动的,一般情况下也不需要专门配置。

监听其他组件有两种方式。第一是设定onclick+事件,页面加载时会自动分析onclick+事件中相关的组件是否为必填项required,Button 会自动将必填组件加入监听列表。第二是设定watch属性,Button 会自动将watch属性中的组件加入监听列表,只能按照组件的名字或 id 进行监听,多个组件之间使用逗号,分隔。当只使用一种方式不能满足监听要求时,也可以两种方式混合使用。上例中,假如#Title#Views#Source都是必填项,则按钮必须在这 3 个表单项的输入值都正确时才会启用。

试试下面的例子,文本框输入值时 Button 才能启用。

示例代码如下:

可用的按钮外观

按钮样式分为基本样式和颜色样式,基本样式用于控制按钮或文字大小,颜色样式用于控制按钮颜色,一般情况下两个样式同时使用。

颜色样式有:

示例:

外观样式可用scalecolor属性代替,如

切换按钮示例

type属性设置为switch时,可以把按钮做为切换按钮使用。

这个示例来自于 Master 项目后台启停用调度的按钮,主要逻辑为:只有先设置了工作流之后才能启用按钮,由onchange事件来判断,如果不满足启用条件,则提示文字invalid-textoptions用来设置不同状态下按钮的显示文字和值;value属性必须设置值;onclick+事件用于请求后端接口,完成数据库更新。

二次确认按钮示例

type设置为twice时,当点击按钮时会划出“确认”和“取消”按钮进行再次确认,在用户体验上这种方式比弹出框更友好一些。

这个示例来自于 Master 项目后台重启 Keeper 的按钮,主要逻辑为,当点击按钮时,按钮会向下划出(fadeOut),同时“确认”和“取消”两个按钮会从左右两方划入(fadeIn);再次点击“确认”按钮才会继续执行。使用confirm-button-textcancel-button-text属性可以设置“确认”和“取消”按钮的文字,enable-on-success属性表示点击成功后不再恢复。


参考链接


微信公众号
码农老吴  |  星源工作室  |  开发月志  |  问题反馈
联系我们:wu@qross.io     手机/微信:18618171102
京 ICP 备 20027445 号
$(h1)!