2016-01-25 4 views
-2

Я создал функцию, которая будет включать текстовое поле, когда флажок установлен, и отключите его при снятии флажка. Ниже приведена функция, которую я создал. Но это дает мне ошибку «txtelement is null». Ниже мой код:Как сделать элемент динамическим внутри функции javascript?

function enableDisable(chk,txt) { 
     var txtelement = document.getElementById(txt); 

     if (chk.checked) { 
      txtelement.disabled = false; 
     } 
     else { 
      txtelement.disabled = true; 
      txtelement.value = ""; 
     } 

     if (!txtelement.disabled) { 
      txtelement.focus(); 
     } 
    } 

я назвал выше Javascript функция, как это:

<asp:CheckBox ID="chk1" runat="server" onclick = "enableDisable(this,'txt1');"/> 

Если имя идентификатор текстового поля является 'txt1. В чем проблема с вышеуказанной функцией?

+0

Не должно быть никаких элементов с этим идентификатором? Кстати, ваш дизайн JavaScript выглядит так, как будто с начала века. –

+0

открыть консоль и посмотреть, является ли 'txt1' идентификатором или он был изменен? –

+0

Посмотрите на источник просмотра, чтобы узнать, есть ли у идентификаторов то, что вы ожидаете. Также .checked является булевым, поэтому .disabled =! Chek.checked достаточно – mplungjan

ответ

0

Вам нужно иметь текстовый элемент на странице с идентификатором txt1.

Попробуйте добавить один как <input id ="txt1" />

+2

Это другое поле, которое называется txt1 – mplungjan

+0

@loxxy .... ClientID все еще не работа сэр. –

+0

@mplungjan aah .. спасибо – loxxy

0

Изменить декларацию флажком следующим образом.

<asp:CheckBox ID="chk1" runat="server" onClick = "enableDisable(this,'txt1');"/> 

Также убедитесь, что JS загружается должным образом. Если вы видите Uncaught reference error на консоли для функции enableDisable. Это было бы связано с нагрузкой JS.

Я также рекомендую обратиться к документации asp.net, чтобы узнать больше о OnClientClick, OnClick различиях и способах их предоставления для лучшего понимания.

Смежные вопросы