Kinlink 代码示例

以下代码示例展示了 Kinlink 的常见用法和最佳实践,帮助您快速实现各种功能需求。

字段联动

字段联动是表单中最常见的需求之一,通过监听某个字段的值变化来控制其他字段的显示状态或值。

JavaScript
// 字段联动示例
(function() {
  kinlink.events.on(kinlink.FormEvents.FORM_LOADED, () => {
    const form = kinlink.formApi;
    // 初始化时隐藏额外信息字段
    form.hideField('额外信息');
  });

  kinlink.events.on(kinlink.FormEvents.FIELD_CHANGE, (data) => {
    const { fieldName, value } = data;
    const form = kinlink.formApi;

    // 当"类型"字段值为"高级"时,显示"额外信息"字段
    if (fieldName === '类型' && value === '高级') {
      form.showField('额外信息');
    } else if (fieldName === '类型') {
      form.hideField('额外信息');
    }
  });
})();

自定义验证

Kinlink 允许您添加自定义的字段验证逻辑,以满足特定的业务需求。

JavaScript
// 自定义字段验证示例
(function() {
  kinlink.events.on(kinlink.FormEvents.FORM_LOADED, () => {
    const form = kinlink.formApi;

    // 添加邮箱格式验证
    form.addFieldValidator('邮箱', (value) => {
      if (!value) return;
      if (!/^\w+@\w+\.\w+$/.test(value)) {
        return '请输入有效邮箱地址';
      }
      return undefined; // 验证通过
    });
    
    // 添加手机号验证
    form.addFieldValidator('手机号', (value) => {
      if (!value) return;
      if (!/^1[3-9]\d{9}$/.test(value)) {
        return '请输入有效的手机号码';
      }
      return undefined;
    });
  });
})();

移动端适配

针对移动端用户优化表单体验,提供更适合触控操作的界面。

JavaScript
// 移动端适配示例
(function() {
  kinlink.events.on(kinlink.FormEvents.FORM_LOADED, () => {
    if (kinlink.layoutApi.checkIsMobileDevice()) {
      // 移动端布局简化
      const form = kinlink.formApi;
      
      // 隐藏次要信息字段,简化移动端表单
      ['次要信息1', '次要信息2', '详细描述'].forEach(field => form.hideField(field));

      // 增大输入框触控区域
      form.setFieldComponentStyle('姓名', {
        fontSize: '16px',
        padding: '12px 8px'
      });
      
      // 自定义移动端操作栏
      kinlink.layoutApi.mobileHideFormActionBar();
      
      // 创建更符合移动端操作习惯的界面元素
      // ...此处省略具体实现代码
    } else {
      // PC端完整布局逻辑
    }
  });
})();

更多示例

外部系统集成

展示如何与外部 API 交互,实现数据同步和填充。

查看示例 →

表单分步提交

实现多步骤表单,提升复杂表单的用户体验。

查看示例 →

自定义布局

通过 layoutApi 定制表单的显示方式和界面元素。

查看示例 →

复杂表单逻辑

处理包含多条件逻辑和计算字段的复杂表单。

查看示例 →