字段显示隐藏控制示例

字段可见性管理概览

动态控制表单字段的显示和隐藏,实现智能表单交互体验

此示例演示如何使用kinlink API控制表单字段的显示和隐藏状态。通过条件逻辑用户交互响应动态界面调整,创建更加智能和用户友好的表单体验。

可见性控制核心功能

  • 👁️ 字段显示控制:根据条件动态显示特定字段
  • 🙈 字段隐藏机制:隐藏不相关或条件不满足的字段
  • 🔄 实时响应:基于用户输入实时调整界面布局
  • 🎯 条件逻辑:复杂的字段依赖关系管理
  • 📱 界面优化:减少视觉噪音,提升用户体验
  • 性能友好:高效的DOM操作和状态管理

关键功能

  • 动态显示指定字段
  • 动态隐藏指定字段
  • 批量控制多个字段的可见性
  • 基于条件的字段显示逻辑

代码示例

/**
* 示例3: 字段显示隐藏控制
* 功能:动态控制表单字段的显示和隐藏
*/
(function () {
kinlink.events.on(kinlink.FormEvents.FORM_LOADED, () => {
  try {
    // 隐藏指定字段
    kinlink.formApi.hideField('单行文本框_10');
    kinlink.formApi.hideField('日期_2');

    // 显示指定字段
    kinlink.formApi.showField('文字列__1行__0');
    kinlink.formApi.showField('文字列__1行__1');

    // 批量隐藏多个字段
    const fieldsToHide = ['单行文本框_8', '单行文本框_9'];
    fieldsToHide.forEach((fieldCode) => {
      kinlink.formApi.hideField(fieldCode);
    });

    // 创建切换按钮来演示动态控制
    const toggleButton = document.createElement('button');
    toggleButton.textContent = '切换字段显示';
    toggleButton.style.margin = '10px 0';
    toggleButton.style.padding = '8px 16px';
    toggleButton.style.backgroundColor = '#3498db';
    toggleButton.style.color = 'white';
    toggleButton.style.border = 'none';
    toggleButton.style.borderRadius = '4px';
    toggleButton.style.cursor = 'pointer';

    let isHidden = false;
    toggleButton.addEventListener('click', () => {
      if (isHidden) {
        kinlink.formApi.showField('单行文本框_10');
        kinlink.formApi.showField('日期_2');
        toggleButton.textContent = '隐藏字段';
      } else {
        kinlink.formApi.hideField('单行文本框_10');
        kinlink.formApi.hideField('日期_2');
        toggleButton.textContent = '显示字段';
      }
      isHidden = !isHidden;
    });

    // 添加按钮到表单
    const formElement = document.querySelector('.ant-form') || document.body;
    formElement.insertBefore(toggleButton, formElement.firstChild);
  } catch (error) {
    console.error('控制字段显示隐藏失败:', error);
  }
});
})();

使用说明

要使用此功能,只需将代码复制到您的kinlink自定义JavaScript中。根据您的表单字段,修改代码中的字段代码。您可以根据业务逻辑控制字段的显示和隐藏。

完整代码请下载查看:

3-字段显示隐藏控制.js

注意事项

隐藏的字段仍然存在于DOM中,只是视觉上不可见。如果需要完全移除字段,请谨慎操作以避免影响表单验证。

API参考

此示例使用了以下kinlink API:
  • kinlink.events.on(eventName, callback) - 注册事件监听器

  • kinlink.FormEvents.FORM_LOADED - 表单加载完成事件

  • kinlink.formApi.hideField(fieldCode) - 隐藏指定字段

  • kinlink.formApi.showField(fieldCode) - 显示指定字段