【问题标题】:Enable textboxes and button after form submittal ASP.NET MVC 4表单提交后启用文本框和按钮 ASP.NET MVC 4
【发布时间】:2014-05-12 13:49:41
【问题描述】:

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

查看:

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

更新按钮名字文本框有一个'disabled'属性。 搜索技术人员编号后,表格将更新为与技术编号对应的名字和姓氏值。

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

我试过了:

脚本:

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

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

【问题讨论】:

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


    【解决方案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="disable"; // 启用它

    【讨论】:

    • 您发布的代码不起作用。 “元素上存在布尔属性代表真实值” (1) 所以该元素将始终被禁用。
    • 您好,我遇到了编译错误。它说“当前上下文中不存在名称'Viewbag'”。
    • 试试ViewBag。区分大小写。
    【解决方案2】:

    我根据 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..
    

    【讨论】:

      猜你喜欢
      • 2012-05-10
      • 1970-01-01
      • 2015-10-25
      • 2011-02-07
      • 2013-05-05
      • 1970-01-01
      • 2013-10-05
      • 2013-10-09
      • 1970-01-01
      相关资源
      最近更新 更多