字段数据管理概览
全面的表单字段值操作解决方案,实现数据的读取、设置和批量处理
此示例演示如何使用kinlink API进行表单字段值的操作。通过数据读取、值设置、批量处理和数据验证,实现完整的表单数据管理工作流程。
字段值操作核心功能
- 📖 值读取:获取单个或多个字段的当前值
- ✏️ 值设置:动态设置字段值,支持各种数据类型
- 🔄 批量操作:一次性处理多个字段的值操作
- 🧹 数据清理:清空字段值或重置为默认状态
- 🔍 数据验证:在操作过程中验证数据的有效性
- ⚡ 性能优化:高效的批量操作和缓存机制
关键功能
- 获取字段当前值
- 设置字段新值
- 批量获取多个字段值
- 批量设置多个字段值
- 清空字段值
代码示例
/**
* 示例5: 字段值操作
* 功能:读取、设置、清空表单字段的值
*/
(function () {
kinlink.events.on(kinlink.FormEvents.FORM_LOADED, () => {
try {
// 设置字段值
kinlink.formApi.setFieldValue('文字列__1行__0', '张');
kinlink.formApi.setFieldValue('文字列__1行__1', '三');
kinlink.formApi.setFieldValue('单行文本框_8', 'Zhang');
kinlink.formApi.setFieldValue('单行文本框_9', 'San');
// 设置日期字段值
kinlink.formApi.setFieldValue('日期_1', '2024-01-15');
kinlink.formApi.setFieldValue('日期_2', '2025-12-31');
// 批量设置字段值
const fieldValues = {
'单行文本框_10': 'kinlink科技有限公司',
'文字列__1行__2': '+86 138 0013 8000',
'文字列__1行__3': '[email protected]',
};
kinlink.formApi.setFieldValues(fieldValues);
// 创建操作按钮面板
const controlPanel = document.createElement('div');
controlPanel.style.margin = '10px 0';
controlPanel.style.padding = '15px';
controlPanel.style.backgroundColor = '#f8f9fa';
controlPanel.style.border = '1px solid #dee2e6';
controlPanel.style.borderRadius = '6px';
// 按钮样式
const buttonStyle = {
margin: '5px',
padding: '8px 12px',
border: 'none',
borderRadius: '4px',
cursor: 'pointer',
fontSize: '14px',
fontWeight: '500',
};
// 获取值按钮
const getValueBtn = document.createElement('button');
getValueBtn.textContent = '获取字段值';
Object.assign(getValueBtn.style, buttonStyle, {
backgroundColor: '#3498db',
color: 'white',
});
getValueBtn.addEventListener('click', () => {
// 获取单个字段值
const firstName = kinlink.formApi.getFieldValue('文字列__1行__0');
const lastName = kinlink.formApi.getFieldValue('文字列__1行__1');
// 批量获取字段值
const values = kinlink.formApi.getFieldValues([
'文字列__1行__0',
'文字列__1行__1',
'单行文本框_10',
'文字列__1行__2',
]);
console.log('单个字段值:', { firstName, lastName });
console.log('批量字段值:', values);
alert(`姓名: ${firstName} ${lastName}\n公司: ${values['单行文本框_10']}`);
});
// 清空值按钮
const clearValueBtn = document.createElement('button');
clearValueBtn.textContent = '清空字段值';
Object.assign(clearValueBtn.style, buttonStyle, {
backgroundColor: '#e74c3c',
color: 'white',
});
clearValueBtn.addEventListener('click', () => {
// 清空单个字段
kinlink.formApi.setFieldValue('单行文本框_10', '');
// 批量清空字段
const fieldsToClear = {
'文字列__1行__2': '',
'文字列__1行__3': '',
'日期_1': '',
};
kinlink.formApi.setFieldValues(fieldsToClear);
console.log('字段值已清空');
});
// 重置值按钮
const resetValueBtn = document.createElement('button');
resetValueBtn.textContent = '重置默认值';
Object.assign(resetValueBtn.style, buttonStyle, {
backgroundColor: '#27ae60',
color: 'white',
});
resetValueBtn.addEventListener('click', () => {
// 重置为初始值
kinlink.formApi.setFieldValues(fieldValues);
kinlink.formApi.setFieldValue('日期_1', '2024-01-15');
console.log('字段值已重置');
});
// 添加按钮到控制面板
controlPanel.appendChild(getValueBtn);
controlPanel.appendChild(clearValueBtn);
controlPanel.appendChild(resetValueBtn);
// 添加标题
const panelTitle = document.createElement('div');
panelTitle.textContent = '字段值操作演示';
panelTitle.style.marginBottom = '10px';
panelTitle.style.fontWeight = 'bold';
panelTitle.style.color = '#2c3e50';
controlPanel.insertBefore(panelTitle, controlPanel.firstChild);
// 添加控制面板到表单
const formElement = document.querySelector('.ant-form') || document.body;
formElement.insertBefore(controlPanel, formElement.firstChild);
} catch (error) {
console.error('字段值操作失败:', error);
}
});
})();使用说明
要使用此功能,只需将代码复制到您的kinlink自定义JavaScript中。根据您的表单字段,修改代码中的字段代码和相应的值。您可以根据业务需求处理字段数据。
完整代码请下载查看:
5-字段值操作.js
注意事项
设置字段值时请确保数据格式正确,特别是日期字段需要使用标准的日期格式(YYYY-MM-DD)。批量操作可以提高性能,建议优先使用。
API参考
此示例使用了以下kinlink API:
kinlink.events.on(eventName, callback)- 注册事件监听器kinlink.FormEvents.FORM_LOADED- 表单加载完成事件kinlink.formApi.getFieldValue(fieldCode)- 获取指定字段的值kinlink.formApi.setFieldValue(fieldCode, value)- 设置指定字段的值kinlink.formApi.getFieldValues(fieldCodes)- 批量获取多个字段的值kinlink.formApi.setFieldValues(valuesObject)- 批量设置多个字段的值