Javascript включить / отключить флажки (я), что я здесь делаю не так? - PullRequest
0 голосов
/ 24 октября 2011

У меня есть цикл для моих флажков ввода (см. Ниже).

<cfloop query="qGetCBList">
<input name="#qGetCBList.CheckBox#" type="checkbox" id="#qGetCBList.CheckBox#"onclick="CheckBoxSelect('#qGetCBList.CBNum#','#qGetCBList.CheckBox#','#qGetCBList.RecordCount#');">&nbsp;&nbsp;#qGetCBList.CBDesc# 
    <br /><br />
</cfloop>

и моя функция JavaScript,

<script language="JavaScript">
CheckBoxSelect = function(CB,cbID,rCnt){
  var myVar_CB=CB;
  var myVar_CB_ID=cbID;
  var myVar_RCNT=rCnt;
    if(myVar_CB == 2) //"Chemical(s)........."
    {   
      for(i=1;i<=myVar_RCNT;i++){
        var myVar_CB_ID_FMT="cb"+i; //check box ID format
        if(i!=2){
          //alert(myVar_CB_ID_FMT);     
          document.getElementById("myVar_CB_ID_FMT").disabled=true;
        }
      }
    }
    else{
      alert('good to go');  
    }
  }
</script>

что здесь происходит, если установлен флажок 2 (это CBNum), то я хочу, чтобы все остальные флажки были отключены.

P.S. Это страница привязки главной страницы. Когда я не комментирую свой тег оповещения, он дает мне правильные CBNum, но отключение не работает. Если это полезно, я использую CF8.

Обратная связь и / или альтернативные методы приветствуются. Спасибо.

Ответы [ 3 ]

3 голосов
/ 24 октября 2011

Я ничего не знаю о ColdFusion, но основные советы по JavaScript, которые вы можете использовать:

  • Проверьте возвращаемое значение document.getElementById(); не думайте, что он всегда вернет узел, который вы можете отключить.

  • В большинстве браузеров имеется встроенный загружаемый отладчик, позволяющий просматривать переменные. Используйте это вместо простых предупреждений. E.g.:

    console.log(myVar_CB_ID_FMTT, document.getElementById(myVar_CB_ID_FMT));
    
1 голос
/ 24 октября 2011

getElementById("myVar_CB_ID_FMT") ищет элемент с именем myVar_CB_ID_FMT.Этот элемент существует?Нет. Ваша переменная myVar_CB_ID_FMT не будет оцениваться, так как getElementById просто видит ее как строку "myVar_CB_ID_FMT".

Попробуйте document.getElementById("cb"+i)

Идентификатор в getElementById(id) чувствителен к регистру, поэтому убедитесь, что "cb" + i существует.

0 голосов
/ 25 октября 2011

@ Ответ Барри Джордана вроде меня разбудил, и я проверил ошибки по линии @ Альваро Дж. Викарио упомянул, потом я наконец понял, что происходит.

В моем цикле, когда я обрезаю значение id ...id="#trim(qGetCBList.CheckBox)#"..., это работает. конечно, это было что-то глупое и моя вина.

Спасибо, ребята, за поддержку, вы все молодцы.

...