首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打开和关闭Html.TextBoxFor“只读”属性

打开和关闭Html.TextBoxFor“只读”属性
EN

Stack Overflow用户
提问于 2015-04-30 15:31:35
回答 1查看 4.2K关注 0票数 1

我正在处理这个问题,在MVC上工作,在Html.TextBoxFor值上发生变化时,我想更改另一个Html.TextBoxFor的只读属性。我尝试了几种方法--使用IE不起作用。这里有一些代码:

代码语言:javascript
复制
@Html.TextBoxFor(x => x.NumberOfQuestion, new { id = "ExamOptions", onchange = "javascript:ReadOnlyHandle();" })

<script>
    function ReadOnlyHandle() {
        //document.getElementById("NoDiffNum").readOnly = true;
        var startHSelect = document.getElementById("NoDiffNum");
        debugger;
        startHSelect.setAttribute("readonly", "true");
    }
    debugger;
</script>

我想要改变的桌子上的那一行:

代码语言:javascript
复制
<td id="NoDiffNum">@Html.TextBoxFor(model => model.Topics[i].NumberOfNoDifficulltySet)</td>

只读属性没有改变-任何帮助都是最受欢迎的!

EN

回答 1

Stack Overflow用户

发布于 2015-05-03 01:38:22

document.getElementById("NoDiffNum")引用的是<td>元素,而不是文本框。您正在设置td上的只读。

您需要针对文本框,而不是td,因此将id移动到文本框。

代码语言:javascript
复制
<td>@Html.TextBoxFor(model => model.Topics[i].NumberOfNoDifficulltySet, new { id="NoDiffNum" })</td>

无jQuery

代码语言:javascript
复制
function ReadOnlyHandle() {
    var startHSelect = document.getElementById("NoDiffNum");
    startHSelect.setAttribute("readonly", "readonly");
}

以及在您的函数中使用jQuery

代码语言:javascript
复制
function ReadOnlyHandle() {
    $("#NoDiffNum").prop("readonly", true);
}

如果我们使用jQuery,我们可以删除内联onchange

代码语言:javascript
复制
@Html.TextBoxFor(x => x.NumberOfQuestion, new { id = "ExamOptions" })

我们设置了一个处理程序

代码语言:javascript
复制
$(document).ready(function() {
    $("#ExamOptions").on("change", function(event) {
        ReadOnlyHandle();
    });
});

编辑

基于TextBoxFor元素值中的值,我希望另一个TextBoxFor元素更改其只读属性on和off。<div class="editor-field"> @Html.TextBoxFor(x => x.NumberOfQuestion, new { id = "ExamOptions", onchange = "javascript:ReadOnlyHandle();" }) @*@Html.EditorFor(model => model.NumberOfQuestion)*@ @Html.ValidationMessageFor(model => model.NumberOfQuestion) </div>

从您的评论中,您现在不太清楚您希望设置什么是只读的。但是在任何情况下,都需要调整更改处理程序中的目标id。

代码语言:javascript
复制
 var targetId = "NumberOfQuestion";
 $("#" + targetId).prop("readonly", true);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29971889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档