【问题标题】:Disable input element using razor使用剃刀禁用输入元素
【发布时间】:2014-11-28 13:22:50
【问题描述】:

当输入值等于“*”时,我需要动态禁用输入。如何使用 MVC Razor 实现这一目标?

    @Html.TextBoxFor(m => m.Digits[0], new { @class = "form-control input-lg label_16", @placeholder = 
"1st", (Model.Digits[0] == "*" ? "disabled" : "") })

以上代码无法编译 这可能吗?

【问题讨论】:

  • 动态是什么意思?当用户输入 * 或 m.Digit[0] 为 * 时,您是否希望 TextBox 更改为禁用?

标签: c# html asp.net-mvc razor


【解决方案1】:

尝试使用三元运算符

@Html.TextBoxFor(m => m.Digits[0], Model.Digits[0] == "*" ? (object)new { @class = "form-control input-lg label_16", @placeholder = 
"1st", @disabled = "disabled" } : new { @class = "form-control input-lg label_16", @placeholder = 
"1st" })

在上面的代码中,@Html.TextBoxFor 辅助方法的第二个参数将基于Model.Digits[0] 的值。如果是*,则参数将包含disabled 属性

new { @class = "form-control input-lg label_16", @placeholder = 
"1st", @disabled = "disabled" }

否则

new { @class = "form-control input-lg label_16", @placeholder = 
"1st" }

【讨论】:

  • 我在问这个问题之前尝试了你的代码,它会产生以下输出:disabled="disabled" 或禁用。在这两种情况下,输入框都被禁用!
  • 请尝试更新后的答案,我已经测试过了,它可以工作。
猜你喜欢
  • 1970-01-01
  • 2018-07-17
  • 2019-05-26
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-11
相关资源
最近更新 更多