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

时间:2014-05-12 04:22:56

标签: c# javascript jquery asp.net asp.net-mvc

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

查看:

@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>   
}

更新按钮名字&amp; 姓氏文本框具有&#39;已停用&#39; 属性。 搜索技术人员编号后,表格将使用名字和名称进行更新。与技术编号对应的姓氏值。

现在我想删除更新按钮,名字和姓氏的disabled属性,以便可以编辑和更新它。最好的方法是什么?

我试过了:

SCRIPT:

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

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

2 个答案:

答案 0 :(得分:1)

当您将表单发布到控制器时,您可以将模型中的值返回到视图,这将确定该按钮是否将被禁用或启用,或者您也可以使用@ Viewbag.disableUpdate以便在发布按钮后正确呈现

<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 =“禁用”; //启用它

答案 1 :(得分:1)

我已经根据Maneesh的回答修改了我的代码,这就是我提出的问题:

<强> MODEL:

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..