我有3个输入文本字段,但只要填写第一个文本字段,就应禁用其他2个输入字段。我试图这样做,如下所示,禁用2输入字段工作正常,但当我删除我的输入时,他们保持禁用状态,他们不会得到readonly = false。有什么解决方案吗?在ASP.net中使用Jquery!
FRONTEND:
<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>
JQUERY:
$("#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);
}
});
答案 0 :(得分:0)
我相信如果您使用keyup事件而不是更改事件将会有效。例如,我会在下拉列表中使用更改。
$("#ctl00_ContentPlaceHolder1_txtTitle").keyup(function () {
if ($(this).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);
}
});
答案 1 :(得分:0)
夫妻俩:
'input'
,因此更改会立即生效,而不是在当前文本框失去焦点后,或者这可能是您的目标。.val()
代替.value
!
不知道为了什么。$(this)
而不是使用$("#ctl00_ContentPlaceHolder1_txtTitle")
重新查询正如您所看到的,我在片段中包含了三个通用的input
,我希望其中的要点是
让我知道
$("#ctl00_ContentPlaceHolder1_txtTitle").on('input', function () {
if ($(this).val() != ''){
$("#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);
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="ctl00_ContentPlaceHolder1_txtTitle"/>
<input id="ctl00_ContentPlaceHolder1_txtStatus"/>
<input id="ctl00_ContentPlaceHolder1_txtMessageId"/>
&#13;
答案 2 :(得分:0)
修正了它!
我使用 keyup 代替 onchange AND length&gt; 0 而不是!=&#39;&#39;
$("#ctl00_ContentPlaceHolder1_txtTitle").keyup(function () {
if ($(this).val().length > 0 ) {
$("#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);
}
});