字段可见性管理概览
动态控制表单字段的显示和隐藏,实现智能表单交互体验
此示例演示如何使用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)- 显示指定字段