【问题标题】:How to change html input type based on another text box value MVC?如何根据另一个文本框值 MVC 更改 html 输入类型?
【发布时间】:2020-06-16 16:24:15
【问题描述】:

我遇到了类似的问题,但仍然无法弄清楚。

我有一个如下所示的表格。一种输入类型是隐藏的。两个文本框的值由控制器传递的模型指定。

 <form asp-action="Edit">
     //input one
     <div class="form-group" id="control1">
            <label asp-for="Value" class="control-label"></label>
            <input asp-for="Value" class="form-control" required="required" id="param2" />
            <span asp-validation-for="Value" class="text-danger"></span>
     </div>
     <input type="hidden" asp-for="Type" id="param1" />
 </form>

默认输入类型是文本框,但假设如果 asp-for="Type" 的值等于“drop”,我想将输入类型更改为下拉列表,设置为 True 或错误选项。我尝试了以下方法。我添加了新的表单组并分配了 id=control2。

       <div class="form-group" id="control2">
            <select asp-for="Value">
                <option value="True">True</option>
                <option value="False">False</option>
            </select>
        </div>

我所做的是,我使用 jquery 选择 param1 的值,如果它等于“bool”,那么我 hide control1show control2 (这是错误的)。因此,即使我使用控件 2 中的下拉列表选择了值,但在 POST 发生时仍使用来自控件 1(我隐藏)的文本框值。

有人可以给我建议吗?替代方法或通过使用 control2

的值继续使用我的方法

非常感谢!

【问题讨论】:

  • 我多次阅读您的问题,但无法理解您的意思。你能发布你的 jQuery 来展示你做了什么/尝试做什么?
  • 我可以检查一下您不清楚的部分。如果满足条件,要使用启用下拉列表。简而言之,这就是我想要的

标签: javascript jquery model-view-controller razor-pages


【解决方案1】:

您可以使用razor 语法在DOM 中添加或删除元素,而不是使用jQuery。如下更新您的代码。

<form asp-action="Edit">
     //input one
	 
	 <input type="hidden" asp-for="Type" id="param1" />
	 @if(Model.Type.Equals("Drop"))
	 {
		 <div class="form-group" id="control2">
            <select asp-for="Value">
                <option value="True">True</option>
                <option value="False">False</option>
            </select>
		</div>
	 }
	 else
	 {
		<div class="form-group" id="control1">
            <label asp-for="Value" class="control-label"></label>
            <input asp-for="Value" class="form-control" required="required" id="param2" />
            <span asp-validation-for="Value" class="text-danger"></span>
		</div>
	 }
     
 </form>

如果条件为真,它将在 DOM 中添加下拉菜单,否则将附加 texbox。

希望对你有帮助。

【讨论】:

  • 嗨阿比舍克。这就像一个魅力。非常感谢 - 祝您有美好的一天!
猜你喜欢
  • 2022-01-12
  • 1970-01-01
  • 2011-08-19
  • 2015-02-23
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-12
相关资源
最近更新 更多