Power Apps SharePoint列表自定义表单URL字段提交失败重置问题求助
解决Power Apps自定义表单URL格式验证与提交拦截问题
1. 替换默认提交按钮
- 把表单自带的默认提交按钮设为隐藏(修改
Visible属性为false),或者直接禁用(DisplayMode设为DisplayMode.Disabled) - 插入一个新的按钮控件,将显示文本设置为“提交”
2. 给自定义按钮添加提交拦截逻辑
在新按钮的OnSelect属性中写入以下代码(注意替换成你实际使用的URL输入框控件名称):
// 先验证URL输入格式 If( IsMatch(DataCardValue1.Text, "(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$"), // 格式正确,执行表单提交 SubmitForm(SharePointForm1), // 格式错误,弹出清晰的自定义提示 Notify("请输入有效的URL,例如:https://example.com", NotificationType.Error) )
3. 可选:实时提示格式错误
如果希望用户输入过程中就能收到格式提醒,给URL输入框的OnBlur属性添加这段代码:
If( !IsMatch(Self.Text, "(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$"), Notify("当前输入不是有效的URL格式", NotificationType.Warning) )
4. 避免编辑模式下的表单重置
- 确保表单的
DefaultMode属性设置正确:新增行时用FormMode.New,编辑现有行时用FormMode.Edit - 提交成功后可自定义后续操作,比如保持编辑状态或返回列表,示例代码:
If( IsMatch(DataCardValue1.Text, "(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$"), If( SubmitForm(SharePointForm1), // 提交成功后可选操作,比如留在编辑页面 Set(CurrentFormMode, FormMode.Edit) ), Notify("URL格式错误", NotificationType.Error) )
核心逻辑说明
通过自定义提交按钮完全掌控提交流程,提前用正则验证拦截无效输入,不让错误内容触发SharePoint的Patch操作,自然就不会出现系统默认的模糊网络错误和表单重置问题,用户能看到明确的格式提示。
内容的提问来源于stack exchange,提问作者Jojo197
相关产品推荐
相关产品推荐

