You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

提交按钮未提交表单,反而将光标移至输入框问题求助

问题排查与解决步骤

1. 排查HTML5表单验证问题

点击提交按钮后光标跳转到Price字段,大概率是该字段触发了HTML5默认验证规则,导致浏览器阻止表单提交并聚焦到错误字段:

  • 按下F12打开浏览器开发者工具,查看控制台是否有验证失败的提示信息。
  • 检查后端模型中Surcharges[i].Price的定义:如果是值类型(如decimal、int)且未标记为可空,Razor会自动给对应input添加required属性,若字段为空则验证失败;同时会生成type="number"属性,若输入非数字内容也会触发验证失败。

对应解决方法:

  • 若Price允许为空,将后端模型的Price字段改为可空类型(如decimal?)。
  • 若需临时跳过验证测试,可给表单添加novalidate属性关闭HTML5默认验证:
<form autocomplete="off" asp-controller="PriceList" asp-action="UpdateSurchargeFixPrices" enctype="multipart/form-data" novalidate>

2. 移除冗余的value属性

Razor的asp-for标签助手会自动根据模型值生成value属性,手动添加value="@Model.Surcharges[i].XXX"会造成冗余,甚至可能导致模型绑定异常。建议移除所有带有asp-for的input上的手动value属性:
修改前:

<input value="@Model.Surcharges[i].Price" asp-for="Surcharges[i].Price" />

修改后:

<input asp-for="Surcharges[i].Price" />

(对所有使用asp-for的input字段执行此修改)

3. 确认提交按钮的有效性

检查提交按钮的type="submit"属性是否正确,且按钮位于<form>标签内部(你的代码中按钮位置符合要求,可再次确认未被其他元素意外截断)。

4. 验证模型绑定规则

确保后端控制器的UpdateSurchargeFixPrices方法接收的模型类型正确,你的代码中用for循环索引绑定集合的方式符合ASP.NET Core列表绑定规则,这部分无需调整。


内容的提问来源于stack exchange,提问作者Tobias Mikutta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 20:42:19