Javascript 更改a<;标签>;基于<;选择>;

Javascript 更改a<;标签>;基于<;选择>;,javascript,html,jsp,Javascript,Html,Jsp,我在JSP文件中有以下代码,我希望名为“complemento”的的文本根据名为“tipo”的中选择的选项进行更改。javascript代码是否有任何错误,因为当我在浏览器中打开页面时,它无法按预期工作 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transit

我在JSP文件中有以下代码,我希望名为“complemento”的
的文本根据名为“tipo”的
中选择的选项进行更改。javascript代码是否有任何错误,因为当我在浏览器中打开页面时,它无法按预期工作

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" http://www.w3.org/TR/html4/loose.dtd">
   <html>
      <head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
         <title>Cadastra Usuario</title>

         <script>
            function mudaTexto(tipo) {
               var opcao_index = tipo.selectedIndex;
               var opcao = tipo.options[opcao_index].value;
               if(opcao == '0')
                  document.getElementById('complemento').innerHTML = 'Periodo';
               else if(opcao == '1')
                  document.getElementById('complemento').innerHTML = 'Titulo';
               else
                  document.getElementById('complemento').innerHTML = 'Status';
            }
         </script>

      </head>
      <body>

         <p align="center">
            <span class="usuario">${nome}</span> | <strong> Hora Livre</strong> | <a href="/hora_livre/ProcessaSaida"> Sair</a>
         </p>

         <p align="center">
            <form method="post" action="/hora_livre/CadastraUsuario">
            <table>
               <tr>
                  <td>Login: </td> <td><input type="text" name="username"></td>
               </tr>
               <tr>
                  <td>Digite uma Senha: </td> <td><input type="password" name="password">      
                  </td>
               </tr>
               <tr>
                  <td>Repita a Senha: </td> <td><input type="password" name="senha"></td>
               </tr>
               <tr>
                  <td>Tipo de usuario: </td>
                  <td>
                     <select name="tipo" onchange="mudatexto(this.form.tipo)">
                        <option value="0">Aluno</option>
                        <option value="1">Professor</option>
                        <option value="2">Funcionario</option>
                     </select>
                  </td>
               </tr>
               <tr>
                  <td>Nome Completo: </td> <td><input type="text" name="name"></td>
               </tr>
               <tr>
                  <td><label for="complemento">Periodo</label></script></label> </td> 
                  <td>    <input type="text" name="complemento"></td>
               </tr>
               <tr colspan=2>
                  <td><input type="submit" value="Enviar"></td>
               </tr>
            </table>
         </form>
      </p>

   </body>
</html>


mudaTexto,不是mudaTexto。您必须正确拼写函数名。 JavaScript区分大小写

您的POST请求返回:

{
  "ok": true,
  "error": false
}
您也没有这样一个id的元素,只有名称

不要使用.innerHTML。这是价值


测试并运行。

mudaTexto,而不是mudaTexto。您必须正确拼写函数名。 JavaScript区分大小写

您的POST请求返回:

{
  "ok": true,
  "error": false
}
您也没有这样一个id的元素,只有名称

不要使用.innerHTML。这是价值


测试并运行。

mudaTexto,而不是mudaTexto。您必须正确拼写函数名。 JavaScript区分大小写

您的POST请求返回:

{
  "ok": true,
  "error": false
}
您也没有这样一个id的元素,只有名称

不要使用.innerHTML。这是价值


测试并运行。

mudaTexto,而不是mudaTexto。您必须正确拼写函数名。 JavaScript区分大小写

您的POST请求返回:

{
  "ok": true,
  "error": false
}
您也没有这样一个id的元素,只有名称

不要使用.innerHTML。这是价值


测试并运行。

您没有id=complemento的元素。通过将id添加到输入中来修复它

<td><label for="complemento">Periodo</label></script></label> </td> <td><input id="complemento"  type="text" name="complemento"></td>

您没有id=complemento的元素。通过将id添加到输入中来修复它

<td><label for="complemento">Periodo</label></script></label> </td> <td><input id="complemento"  type="text" name="complemento"></td>

您没有id=complemento的元素。通过将id添加到输入中来修复它

<td><label for="complemento">Periodo</label></script></label> </td> <td><input id="complemento"  type="text" name="complemento"></td>

您没有id=complemento的元素。通过将id添加到输入中来修复它

<td><label for="complemento">Periodo</label></script></label> </td> <td><input id="complemento"  type="text" name="complemento"></td>
正如安德烈所说

要更改其文本的标签的名称为
complemento
,但您正在查找ID为
complemento
的元素,因此它将不起作用

然后,函数名是区分大小写的,就像其他人说的那样,
mudatexto
应该是
mudatexto
,您试图访问tipo,就好像它定义了一个id属性,但它只有一个名称
this.form.tipo
将不起作用,而是使用
this.value
,那么您的tipo html将如下所示

<select name="tipo" onchange="mudaTexto(this.value)">
   <option value="0">Aluno</option>
   <option value="1">Professor</option>
   <option value="2">Funcionario</option>
</select>
function mudaTexto(tipo) {
   var opcao_index = tipo.selectedIndex;
   var opcao = tipo.options[opcao_index].value;
   if(opcao == '0'){
      document.getElementsByName('complemento')[0].innerHTML = 'Periodo';
   }else if(opcao == '1'){
      document.getElementsByName('complemento')[0].innerHTML = 'Titulo';
   }else{
      document.getElementsByName('complemento')[0].innerHTML = 'Status';
   }
}
还有,;您应该看看如何使用angularjs,它将消除使用javascript或jquery执行此类操作的任何需要。

正如Andrei所说

要更改其文本的标签的名称为
complemento
,但您正在查找ID为
complemento
的元素,因此它将不起作用

然后,函数名是区分大小写的,就像其他人说的那样,
mudatexto
应该是
mudatexto
,您试图访问tipo,就好像它定义了一个id属性,但它只有一个名称
this.form.tipo
将不起作用,而是使用
this.value
,那么您的tipo html将如下所示

<select name="tipo" onchange="mudaTexto(this.value)">
   <option value="0">Aluno</option>
   <option value="1">Professor</option>
   <option value="2">Funcionario</option>
</select>
function mudaTexto(tipo) {
   var opcao_index = tipo.selectedIndex;
   var opcao = tipo.options[opcao_index].value;
   if(opcao == '0'){
      document.getElementsByName('complemento')[0].innerHTML = 'Periodo';
   }else if(opcao == '1'){
      document.getElementsByName('complemento')[0].innerHTML = 'Titulo';
   }else{
      document.getElementsByName('complemento')[0].innerHTML = 'Status';
   }
}
还有,;您应该看看如何使用angularjs,它将消除使用javascript或jquery执行此类操作的任何需要。

正如Andrei所说

要更改其文本的标签的名称为
complemento
,但您正在查找ID为
complemento
的元素,因此它将不起作用

然后,函数名是区分大小写的,就像其他人说的那样,
mudatexto
应该是
mudatexto
,您试图访问tipo,就好像它定义了一个id属性,但它只有一个名称
this.form.tipo
将不起作用,而是使用
this.value
,那么您的tipo html将如下所示

<select name="tipo" onchange="mudaTexto(this.value)">
   <option value="0">Aluno</option>
   <option value="1">Professor</option>
   <option value="2">Funcionario</option>
</select>
function mudaTexto(tipo) {
   var opcao_index = tipo.selectedIndex;
   var opcao = tipo.options[opcao_index].value;
   if(opcao == '0'){
      document.getElementsByName('complemento')[0].innerHTML = 'Periodo';
   }else if(opcao == '1'){
      document.getElementsByName('complemento')[0].innerHTML = 'Titulo';
   }else{
      document.getElementsByName('complemento')[0].innerHTML = 'Status';
   }
}
还有,;您应该看看如何使用angularjs,它将消除使用javascript或jquery执行此类操作的任何需要。

正如Andrei所说

要更改其文本的标签的名称为
complemento
,但您正在查找ID为
complemento
的元素,因此它将不起作用

然后,函数名是区分大小写的,就像其他人说的那样,
mudatexto
应该是
mudatexto
,您试图访问tipo,就好像它定义了一个id属性,但它只有一个名称
this.form.tipo
将不起作用,而是使用
this.value
,那么您的tipo html将如下所示

<select name="tipo" onchange="mudaTexto(this.value)">
   <option value="0">Aluno</option>
   <option value="1">Professor</option>
   <option value="2">Funcionario</option>
</select>
function mudaTexto(tipo) {
   var opcao_index = tipo.selectedIndex;
   var opcao = tipo.options[opcao_index].value;
   if(opcao == '0'){
      document.getElementsByName('complemento')[0].innerHTML = 'Periodo';
   }else if(opcao == '1'){
      document.getElementsByName('complemento')[0].innerHTML = 'Titulo';
   }else{
      document.getElementsByName('complemento')[0].innerHTML = 'Status';
   }
}
还有,;您应该看看如何使用angularjs,它将消除使用javascript或jquery执行此类操作的任何需要