如何根据单选按钮选择预填充Orbeon表单文本字段
解决Orbeon表单单选按钮与文本字段联动问题
首先得纠正你之前的计算表达式写法——Orbeon的控件计算值是返回要赋值给控件的内容,不是写赋值语句哦!你之前写的$control-111='1'是布尔判断,会返回true或false,这肯定达不到你想要的效果。
根据你的需求,我整理了两种实用的解决方案:
方案1:严格匹配需求——选1清空、选2预填充,且允许用户编辑
这种方案下,每次切换单选按钮都会触发文本框内容变化:
- 选中
1:文本框立即清空,之后用户可以自由输入内容 - 选中
2:文本框自动填充xxx-xxx-xx,用户也能修改该内容
给control-111设置计算值,表达式如下:
if ($control-114 = '2') then 'xxx-xxx-xx' else ''
方案2:更灵活的联动——保留用户输入,仅首次切换时触发填充
如果希望用户在选1时输入的内容不会被反复清空,选2时仅在文本框为空的情况下预填充(用户修改后保留自定义内容),可以用这个表达式:
if ($control-114 = '2') then if (empty($control-111)) then 'xxx-xxx-xx' else $control-111 else $control-111
可选优化:锁定预填充状态
如果希望选中2时文本框不允许修改(仅展示预填充内容),可以给control-111设置只读条件:
$control-114 = '2'
这样选2时文本框锁定,选1时可编辑,完全贴合你的需求场景。
内容的提问来源于stack exchange,提问作者Aman Shah
相关产品推荐
相关产品推荐

