在表单提交后启用文本框和按钮.Net MVC 4

本文关键字:按钮 Net MVC 表单提交 启用 文本 | 更新日期: 2023-09-27 18:02:45

我想在表单提交后启用更新按钮。下面是我的代码:

视图:

@using (Html.BeginForm("ProcessTech", "Home", FormMethod.Post))
{
    @Html.TextBoxFor(m => m.techNo, new { @class = "form-control maintain-text", placeholder = "Technician No..." })
    <span class="input-group-btn">
        <button type="submit" id="search" name="SubmitButton" value="search" class="btn btn-default">                        
        <i class="fa fa-search"></i>
    </button>
    </span>
    <td>First Name :</td>
    <td class="display-field">@Html.TextBoxFor(m => m.firstName, new { @class = "form-control", style = "width:380px;", disabled = "disabled" })</td>
    <td>Last Name :</td>
    <td class="display-field">@Html.TextBoxFor(m => m.lastName, new { @class = "form-control", style = "width:380px;", disabled = "disabled" })</td>
    <button name="SubmitButton" value="update" id="update" type="submit" style = "float:right;margin-right:10px; border-radius:5px;" class="btn btn-default" disabled><i class='fa fa-edit fa-fw'></i>Update</button>   
}
更新按钮firstname &lastname文本框有一个'disabled'属性。搜索技术员编号后,表单将更新为姓名&与技术编号对应的姓氏值。

现在我想删除更新按钮的禁用属性,firstname和lastname,以便可以编辑和更新。最好的方法是什么?

我试过了:

脚本:

$(document).ready(function () {
    $("#search").click(function () {               
        $("#update,#firstName,#lastName").removeAttr("disabled");              
    });            
});

它在表单提交时启用元素,但一旦表单提交,页面就会重新加载文本框中已有的值,并禁用元素。

在表单提交后启用文本框和按钮.Net MVC 4

当你将表单提交给控制器时,你可以在模型中返回一个值给视图,这将决定按钮是被禁用还是启用,或者你也可以使用@Viewbag。disableUpdate以便post后按钮正确呈现

<button name="SubmitButton" value="update" id="update" type="submit"  class="btn btn-default" @ViewBag.disableUpdate ><i class='fa fa-edit fa-fw'></i>Update</button>   

从控制器传递@ViewBag。disableUpdate="//启用

和@ViewBag.disableUpdate ="禁用";//启用

我根据Maneesh的回答修改了我的代码,下面是我得出的结论:

模型:

public bool setEnable { get; set; }
public IndexModel() { setEnable = false; } //constructor

控制器:

public ActionResult Index()
{            
    return View(new IndexModel());                                 
}
[HttpPost]
public ActionResult ProcessTech(string SubmitButton)
{   
    IndexModel _oTechModel = new IndexModel();          
    switch (SubmitButton)
    {       
        case "search": //search technician
            {               
                _oTechModel.setEnable = true;
            }
            break;  
    }    
    return View("Index", _oTechModel);         
}

视图:

@model Maintenance_.Models.IndexModel
@{    
    ViewBag.Title = "Technician";
    if(Model.setEnable==true)
    {
        ViewBag.disableUpdate = "";
    }
    else{
        ViewBag.disableUpdate = "disabled";
    }
}
//HTML codes goes here..