Asp.net mvc 3 MVC 3 html.textbox用于动态设置只读属性 型号日期,“日期”)%> 型号(日期)%>

Asp.net mvc 3 MVC 3 html.textbox用于动态设置只读属性 型号日期,“日期”)%> 型号(日期)%>,asp.net-mvc-3,html.textbox,Asp.net Mvc 3,Html.textbox,在这里,我想将readonly属性设置为按钮单击/操作单击时的文本框。我该怎么做呢。 在初始页面,数据显示为只读,并在编辑按钮上单击。这应该更改为可编辑的文本框。我几乎有七个文本框需要对所有人执行相同的操作。如果我正确理解了您的问题,这可以通过一点javascript来完成。这里有一个简单的例子 在页面加载时将每个文本框呈现为只读: <div class="editor-label" style="position:static"> <%: Html.L

在这里,我想将readonly属性设置为按钮单击/操作单击时的文本框。我该怎么做呢。
在初始页面,数据显示为只读,并在编辑按钮上单击。这应该更改为可编辑的文本框。我几乎有七个文本框需要对所有人执行相同的操作。

如果我正确理解了您的问题,这可以通过一点javascript来完成。这里有一个简单的例子

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

    <div class="editor-label" style="position:static">
        <%: Html.LabelFor(Model => Model.Date, "Date")%>
        <span style="padding-left:52px">
            <%: Html.TextBoxFor(Model => Model.Date)%>

我想你应该把

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

使用以下命令:

@readonly = *your-expression-here*

希望这有帮助:)

谢谢您的回复,但它不起作用。我尝试了很多其他选项,但javascript在MVC控件中根本不起作用$(document).ready(function(){$(“#datebox”).attr('@readonly','readonly');});Model.Date,“Date”)%%>Model.Date,新的{@class=“textboxs”,“@id=“datebox”)%%>将javascript调用更改为:$(“#datebox”).attr('readonly','readonly');此外,在日期文本框中,您不需要使用@id,它可以是id。保持@class不变,“@”用于将C#保留字用作变量名。
@readonly = true
@readonly = *your-expression-here*
 Html.TextBoxFor(m => m.Whatever, new {id = "", @class="", 
      placeholder="" @readonly="readonly"})