【发布时间】:2018-04-03 15:13:34
【问题描述】:
我有 3 个输入文本字段,但是当第一个被填写时,其他 2 个输入字段应该被禁用。我正在尝试按如下所示执行此操作,并且禁用 2 个输入字段工作正常,但是当我删除我的输入时,它们保持禁用状态并且它们不会得到它们的 readonly=false。任何解决方案的想法?在 ASP.net 中使用 Jquery!
前端:
<p><asp:TextBox ID="txtTitle" runat="server" CssClass="texter" placeholder="<%$ Resources:GlobalResource, title%>" ></asp:TextBox></p>
<p><asp:TextBox ID="txtStatus" runat="server" CssClass="texter" placeholder="<%$ Resources:GlobalResource, status%>" ></asp:TextBox></p>
<p><asp:TextBox ID="txtMessageId" runat="server" CssClass="texter" placeholder="<%$ Resources:GlobalResource, messageid%>" ></asp:TextBox></p>
查询:
$("#ctl00_ContentPlaceHolder1_txtTitle").change(function () {
if (!$("#ctl00_ContentPlaceHolder1_txtTitle").value != ''){
$("#ctl00_ContentPlaceHolder1_txtStatus").prop("readonly", true);
$("#ctl00_ContentPlaceHolder1_txtMessageId").prop("readonly", true);
}
else {
$("#ctl00_ContentPlaceHolder1_txtStatus").prop("readonly", false);
$("#ctl00_ContentPlaceHolder1_txtMessageId").prop("readonly", false);
}
});
【问题讨论】:
-
$("#ctl00_ContentPlaceHolder1_txtTitle")选择什么?那是渲染的html吗? -
是的,因为。将它们设置为 readonly = true 可以正常工作。但是,如果我删除我的输入,那么其他输入仍然被禁用,它们应该可以再次编辑,但不知何故出错了。 (也应该把它放在信息中,一分钟内完成)
-
我的问题是因为我没有在你的 html 中使用
ctl00_ContentPlaceHolder1_txtTitle作为 id 的任何东西,我没有使用过 asp.net 但它仍然很奇怪 -
使用 asp.net,如果您必须在服务器端获取一些东西(例如使用 jquery/javascript),那么它会将“ctl00_ContentPlaceHolder1_”添加到您的 id。所以这绝对没有错。我想应该更改 IF- 行但是。
-
那里,这就是为什么我问你这是否是 RENDERED html,而不是你编码的文件中的 html,而是你可以从浏览器源代码中复制的那个它已经被渲染了,当
ctl00_ContentPlaceHolder1_txtTitle实际上已经存在于dom中时,这可能是有用的。
标签: jquery asp.net textbox readonly input-field