Как работать с функцией JavaScript для контроля флажка asp.net, который находится в contentplaceholder? - PullRequest
1 голос
/ 28 ноября 2011

У меня есть флажок и текстовое поле управления asp.net на держателе содержимого. Я хочу вызвать функцию javascript для включения контроля над текстовым полем в зависимости от отмеченного состояния флажка. Я написал следующий javascript для этого -

имя checkbox & textbox соответственно после рендеринга в браузер ctl00$ContentPlaceHolder1$chkCall, ctl00$ContentPlaceHolder1$txtCall

function chkChanged() {
           try {

           var echk = document.getElementsByName('ctl00$ContentPlaceHolder1$chkCall');
           var etxt = document.getElementsByName('ctl00$ContentPlaceHolder1$txtCall');

           if (echk.Checked) {

               etxt.Enabled = true;
           }
           else {
               etxt.Enabled = false;
               etxt.Text = "";
           }
           return true;
           }
       catch (err) {
           alert(err.Message);
           return false;
       }
       }

Когда я выполняю вышеуказанный скрипт, он вызывает функцию, но код не работает для элемента управления. И это не исключение.

Что не так в приведенном выше скрипте?

спасибо.

Ответы [ 2 ]

3 голосов
/ 28 ноября 2011

getElementsByName возвращает массив элементов (множественное число), попробуйте использовать getElementById, чтобы получить один единственный элемент, что, вероятно, то, что вы хотите, потому что вы проверяете, действительно ли echk.Checked == true. В вашем случае echk - это массив, а не флажок.

2 голосов
/ 28 ноября 2011

Используйте этот скрипт вместо:

var echk = document.getElementById("<%= chkCall.ClientID %>");
var etxt = document.getElementById("<%= txtCall.ClientID %>");
...