当前位置: 首页 > 知识库问答 >
问题:

未捕获的TypeError:无法读取null-style的属性“style”。显示器不工作

赫连越
2023-03-14

我的要求是我有一个带有注册信息的jsp页面。它将提交控制器中的所有值,并返回相同的“ignup.jsp”。直到这是工作。现在的要求是,一旦它回到同一个页面,我在从控制器重定向时设置了一个参数。在Jsp中,参数得到验证,如果参数来自匹配的控制器,那么一个“td”将是可见的,当我第一次将Jsp发送到控制器时,它不应该是可见的。

下面是WebContent中的代码“signup.jsp”-

<html>
<head>
 <!-- So this script below actually checks if from controller "31012057" 
 value is coming or not. If matches then "id=phone" in table will be visible 
 which is hidden now -->

 <script type="text/javascript">
  var value=<%= request.getAttribute("parameter") %>
  if(value!=null && value==31012057)
  {
  alert("My Phone text box will be visible here.......");
  document.getElementById('phone').style.display = 'visible';
  document.getElementById('phoneTextBox').style.display = 'visible';
  }
 </script>
 </head>
 <body>
<form:form id="signup" method="post" action="signup" modelAttribute="signup" 
commandName="signup">

<table>
 <tr>
 <td>
        <form:label path="firstname">FirstName</form:label>
 </td>
 <td>
       <form:input path="firstname" name="firstname" 
            id="firstname"/>
 </td>
 </tr>

 <tr>
 <td id="phone" style=display:none>
         <form:label path="phone">Phone</form:label>
 </td>
 <td id="phoneTextBox" style=display:none>
         <form:input path="phone" name="phone" id="phone" />
 </td>
 </tr>
 <tr>
  <td>
  <form:button id="register" name="register">Register</form:button>
  </td>
  </tr>
 </table>
</form:form>
 </body>
 </html>

我看到了一些样式错误,但在任何网站上都找不到任何解决方案,即一旦表单成功提交,控制器从jsp接收到所有信息并再次返回“signup.jsp”,如何使电话号码可见。

如果有人想执行,下面是控制器代码。

    @RequestMapping(value = "/signup", method = RequestMethod.POST)
     public String signupPost(@ModelAttribute("signup") SignupPojo 
     signup,Model model) {

     int parameter=31012057;
     model.addAttribute("firstname", signup.getFirstname());
     model.addAttribute("parameter", parameter);
     return "signup"; 

SignupPojo.javagetters和setters,

     public class SignupPojo {

     private String firstname;
     private int phone;
     //getter setter
     }

web.xml

    <servlet>
    <servlet-name>signup</servlet-name>
    <servlet-class> 
     org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
   </servlet>
    <servlet-mapping>
    <servlet-name>signup</servlet-name>
    <url-pattern>/signup</url-pattern>
    </servlet-mapping>

注册servlet。WebContent中的xml-

     <?xml version="1.0" encoding="UTF-8"?>
  <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
     http://www.springframework.org/schema/context
     http://www.springframework.org/schema/context/spring-context-3.0.xsd">

 <context:component-scan base-package="GIVE YOUR CONTROLLER PACKAGE NAME "/>

    <bean 
  class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="prefix" value="/WEB-INF/jsp/" />
  <property name="suffix" value=".jsp" />
   </bean>
    </beans>

这将是一个很大的帮助。提前谢谢。

====================================================================================================================================好的,这是编辑部分。在奥菲索拉和塔希尔·侯赛因·米尔的帮助下,我解决了这个问题。解决方案是,由于加载问题,在关闭“body”之前,我将“script”标记放在body部分的末尾。我已经更改了文件。getElementById('phone')。风格显示='可见';记录。getElementById('phone')。风格显示='块';

这就是“Uncaught TypeError:无法读取null的属性'style'”的解决方案,所以对于像我这样面临同样问题的人来说,可以更改标题。

共有1个答案

秦才
2023-03-14

解决问题的非常简单的方法就是将脚本代码放在jsp文件的末尾。就是这样。我首先想到的是,请求的转换。getAttribute就是问题所在。但是在看了你的评论之后,我发现,你的DOM脚本并不知道。这就是为什么错误是“无法读取null的样式id”
原因是,脚本应该总是在最后编写,这样他们就可以了解DOM。否则,你可以使用Windows。在开始时也是onload,这样脚本就可以查看完整的DOM。

所以只需将整个脚本标记放在文件的末尾。

 类似资料:
  • 问题内容: 我收到以下错误 未捕获的TypeError:无法读取null的属性’appendChild’ myRequest.onreadystatechange @ script.js:20 与我下面的代码 这是我的JavaScript文件 这是内容 这是一个简单文本文件的内容。 我在这里按照@Tejs的建议将脚本标签放在html的底部,但仍然出现此错误。 问题答案: 执行回调时,页面上没有ID

  • 问题内容: 我正在尝试将Google MAP API v3与以下代码一起使用。 当我运行这段代码时,浏览器会这样说。 未捕获的TypeError:无法读取null的属性’offsetWidth’ 你有什么线索吗? 问题答案: 此问题通常是由于在需要运行JavaScript的javascript运行之前未渲染map div引起的。 您应该将初始化代码放在onload函数中或HTML文件底部的标记之前

  • 这是双子城的项目。这个项目在我自己的服务器--本地主机上运行得非常好。但当我在ionos服务器上尝试时,它不起作用。如果你进入我的网站sharminrony.co.uk并跟踪双城项目的链接,那么你自己就能看到错误。它在ionos服务器中不起作用,但在localhost中起作用。知道这有什么问题吗??

  • 问题内容: 如果这个问题已经回答,我深表歉意。我尝试搜索解决方案,但找不到适合我的代码的任何解决方案。我还是jQuery新手。 对于两个不同的页面,我有两种不同类型的粘滞菜单。这是两者的代码。 我的问题是,底部粘性菜单的代码不起作用,因为第二行代码会引发错误,提示“未捕获的TypeError:无法读取未定义的属性’top’”。实际上,除非将第二行以下的其他jQuery代码放在第二行之上,否则根本不

  • 问题内容: 我收到此错误,它源自jquery框架。当我尝试在文档准备好加载选择列表时,出现此错误。我似乎找不到我为什么收到此错误的信息。 它适用于change事件,但是尝试手动执行功能时出现错误。 未捕获的TypeError:无法读取未定义的属性’toLowerCase’-> jquery-2.1.1.js:7300 这是代码 问题答案: 当您调用DOMReady时,的上下文将不是元素。 您可以通

  • 问题内容: 我有一些JavaScript代码会给出此错误 码 这个错误是什么意思? 问题答案: 好像您的值之一,属性键为“值”是未定义的。在执行if语句之前测试,和是否已定义: