【问题标题】:MVC 3 html.TextBoxFor readonly Properties to be set dynamicallyMVC 3 html.TextBoxFor 动态设置的只读属性
【发布时间】:2011-06-23 11:27:23
【问题描述】:
    <div class="editor-label" style="position:static">
        <%: Html.LabelFor(Model => Model.Date, "Date")%>
        <span style="padding-left:52px">
            <%: Html.TextBoxFor(Model => Model.Date)%>

在这里,我想在按钮单击/操作单击时将只读属性设置为文本框。我该怎么做。 在初始页面,数据显示为只读,点击编辑按钮。这应该更改为可编辑的文本框。我有将近七个文本框我需要为所有文本框做同样的事情。

【问题讨论】:

    标签: asp.net-mvc-3 html.textbox


    【解决方案1】:

    如果我正确理解您的问题,这可以用一点 javascript 来完成。这是一个简单的例子。

    在页面加载时将每个文本框呈现为只读:

    <%: Html.TextBoxFor(model => model.Date, new { @readonly = "readonly" }) %>
    

    为您的编辑按钮添加一个单击处理程序,该处理程序将从每个文本框中删除只读属性:

    $("#editButton").click(function() {
        $("#Date").removeAttr("readonly");
    });
    

    【讨论】:

    • 感谢您的回复,但它不起作用。我尝试了很多其他选项,但 javascript 在 MVC 控件中根本不起作用。 $(document).ready(function(){ $("#datebox").attr('@readonly','readonly'); });
      Model.Date, "Date")%> Model.Date, new { @class= "textboxes",@id = "datebox")%>
    • 将您的 javascript 调用更改为: $("#datebox").attr('readonly','readonly');此外,在您的日期文本框中,您不需要使用@id,它可以只是 id。保持 @class 不变。 '@' 用于使用 C# 保留字作为变量名。
    【解决方案2】:

    使用以下内容:

     Html.TextBoxFor(m => m.Whatever, new {id = "", @class="", 
          placeholder="" @readonly="readonly"}) 
    

    希望这会有所帮助:)

    【讨论】:

      【解决方案3】:

      我觉得你应该放

      @readonly = true
      

      @readonly = *your-expression-here*
      
      猜你喜欢
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      • 2012-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多