Мне нужно включить/отключить asp.TextBox/Input в зависимости от CheckBox. Если CheckBox.Checked = true, то мне нужно включить asp.TextBox/Input, или если CheckBox.Checked = false, мне нужно будет отключить asp.TextBox/Input.Включить/отключить asp: TextBox Control на основе CheckBox.Checked true или false
Ниже приведен код, который у меня есть, но он работает только при первом щелчке, что означает, что если я поставлю флажок, он включит asp.TextBox/Input, но если я сниму его, это не отключит asp.TextBox/Input.
Кроме того, по умолчанию asp.TextBox/Input отключен в Page_Load.
//If checked it should enable the input.
//If unchecked it should disable the input.
If Port is Required?<label class="checkbox">
<input type="checkbox" id="isportreqinput" name="isportreqinput" runat="server" onclick="fncport(this.form.isportreqinput, this.form.porttxt);" />
<span class="metro-checkbox">Check Me</span>
</label>
//This is the input I need to disable/enable depending on the checkbox
<input type="text" name="porttxt" id="porttxt" runat="server" disabled="disabled" />
<script type="text/javascript">
function fncport(control, objname) {
if (control.checked == true) {
objname.disabled = false;
}
if (control.cheched == false) {
objname.disabled = true
}
}
</script>
Хммм ... странно. Почему это вообще что-то? 'fncport (this.form.isportreqinput, ...)' не должен знать элемент управления, потому что по умолчанию ASP.net отображает другой идентификатор. –
Извините, не уверен, что вы имеете в виду? – jorame
Если вы посмотрите на отображаемый HTML-код в своем браузере, идентификаторы ваших элементов управления должны быть чем-то не очень красивым, например 'ctl00_ContentPlaceHolder_isportreqinput'. Но ваш обработчик 'onclick' вызывает функцию с исходными идентификаторами. Если вы не изменили рендеринг идентификатора по умолчанию, это должно быть 'fncport (this.form. <% = Isportreqinput.ClientID%>, ...)', чтобы получить идентификатор визуализированного клиента. –