W Coldfusion Program Person1.cfm ma taki kod:

<form action = "person2.cfm"
  id       = "pers2form" 
  name     = "pers2form"
  method   = "post"      
  onsubmit = "return pers1()">
  <table>
      <td>
        <input type = "radio"  
          class = "moxradio round"                   
          id    = "Person"
          name  = "whereto"                                                        
          value = "Person">
      </td>
      <td style = "color: ##946ca6"> Update Person</td>
    <tr>
    <td>
      <input type = "radio"
                class = "moxradio round"
                id    = "Persactiv"
                name  = "whereto" 
                value = "PersActiv">
    </td>
    <td style = "color: ##946ca6; ">Update Activity  </td>
  </table>
</form>
<input type  = "Submit"
  name  = "subpers2"
  id    = "subpers2" 
  class = "submitbut"
  style = "display: block; margin:10px auto 10px auto"
  value = "Submit">

Pracuje dobrze, i prawidłowo podnosi odpowiednio do osobistego2.cfm, który ma taki kod:

<cfif IsDefined('form.whereto')>
   <cfset whereto = form.whereto> 
</cfif>

<cfinclude template = person1.cfm>
<cfoutput>
  <script>
   recheck('#whereto#')
   function recheck(target) {
      alert('target is ' + target);
      document.getElementById(target).checked = true;
   }
  </script>
</cfoutput>

Ma to zameldowanie w pudełku radiowym osobiście1. Ale to nie. Dostaję ten błąd na konsoli:
TypeError: Document.GetElementByid (...) jest NULL [Dowiedz się więcej] Person2.cfm: 393: 1

Sprawdzanie requeck funkcji podnosi właściwy cel. Od personsu1.cfm jest już włączony, ten cel powinien być właśnie tam. Ale nie może go znaleźć.

Reszta osobista2.cfm pojawia się prawidłowo.

Odniesienie do linii 393 jest fałszywe, ponieważ nie ma linii 393. Wartość NULL musi wystąpić w rekomendzie funkcji. Zrobiłem tego rodzaju rzeczy w całym miejscu, wprowadzenie wartości z powrotem do pól wejściowych i wybierz pola i wszystko działa. Ale nigdy tego nie zrobiłem za pomocą przycisku radiowego. Może jest coś innego o ponownym powtórzeniu pudełka? A może zrobiłem coś głupiego, po prostu nie widzę?

Czy ktoś może dostrzec, co robię źle?

0
Betty Mock 16 grudzień 2019, 03:01

1 odpowiedź

Najlepsza odpowiedź

Identyfikator drugiego przycisku opcji to „Persactiv”, jednak wartość, którą wysyłasz, to „PersActiv”. Rozróżnianie wielkości liter kończy się tym, że getElementById() nie znajduje identyfikatora.

1
rrk 16 grudzień 2019, 06:39