javascript中的document.write()函数引发的问题

先看下面的一段代码:

function output()

{  
  document.write(document.login.username.value+ "<br />");
  document.write(document.login.password.value+ "<br />");

}

调用该函数后,发现只能输出用户名的信息,却没有输出想要的密码。

 

再看下面的一段代码

function output()

  var username = document.login.username.value;
  var password = document.login.password.value;
  
  document.write(username + "<br />");
  document.write(password + "<br />");

}

发现用户名和密码都已经输出了。为什么?

 

document.write 产生一个文档输出流,可以理解为document重新写入信息了,之前的信息就全被覆盖了,document.write(document.login.username.value+ "<br />"),document.login.username.value能取到,但是执行完write函数后,document已经赋了新的内容了,所以document.login.password.value的值就已经被冲掉了。解决方法可以用第二段代码的例子,先把希望得到的信息取出来,然后再输出就可以了。

### 回答1: 在 JavaScript 中,可以使用 AJAX 技术将数据发送到 JSP 页面,具体步骤如下: 1.JavaScript 中使用 AJAX 对象创建一个 XMLHttpRequest 请求对象。 2. 设置请求的方法和 URL。 3. 发送请求到 JSP 页面。 4. 在 JSP 页面中获取请求参数,处理数据,然后将结果返回给 JavaScript。 5.JavaScript 中接收 JSP 返回的数据,然后使用 document.write 将数据输出到 HTML 页面中。 以下是一个简单的示例: JavaScript 代码: ``` var xhr = new XMLHttpRequest(); // 创建 XMLHttpRequest 对象 xhr.open("POST", "getData.jsp", true); // 设置请求方法和 URL xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); // 设置请求头 xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { var data = xhr.responseText; // 获取 JSP 返回的数据 document.write(data); // 将数据输出到 HTML 页面中 } }; xhr.send("name=John&age=25"); // 发送请求并传递参数 ``` getData.jsp 代码: ``` <% String name = request.getParameter("name"); // 获取请求参数 int age = Integer.parseInt(request.getParameter("age")); String result = "姓名:" + name + ",年龄:" + age; out.print(result); // 输出结果 %> ``` 上述代码中,JavaScript 部分使用了 XMLHttpRequest 对象向 getData.jsp 页面发送了一个 POST 请求,并传递了两个参数 name 和 age。在 getData.jsp 页面中,使用 request.getParameter 方法获取请求参数,并处理数据,最后通过 out.print 输出结果。JavaScript 再将获取到的结果使用 document.write 输出到 HTML 页面中。 ### 回答2: 在JavaScript中,我们可以使用`document.write()`方法将数据传递给JSP页面。 JSP(JavaServer Pages)是一种动态网页技术,允许我们在服务器端嵌入Java代码,并生成动态内容的网页。要将数据传递给JSP页面,我们需要在JavaScript中使用`document.write()`方法来生成包含所需数据的HTML内容。 首先,我们需要在JSP页面中嵌入JavaScript代码。可以使用`<script>`标签将JavaScript代码包含在JSP页面中。例如: ```html <script> // JavaScript代码 var data = "这是我传递的数据。"; document.write(data); </script> ``` 在上述示例中,我们创建了一个名为`data`的变量并赋值为"这是我传递的数据。"。然后,我们使用`document.write()`方法将数据直接写入JSP页面。 在JSP页面被访问时,服务器将执行嵌入的JavaScript代码,并将数据写入生成的HTML响应中。当用户访问该页面时,将显示由JavaScript生成的数据。 需要注意的是,`document.write()`方法会向当前页面写入内容,并覆盖整个页面的内容。因此,在使用`document.write()`方法时必须小心,避免在文档加载完成后使用该方法。 总之,通过在JavaScript中使用`document.write()`方法,并在JSP页面中嵌入JavaScript代码,我们可以将数据传递给JSP页面并在用户访问页面时显示。 ### 回答3: 在JavaScript中,可以使用`document.write()`方法将数据传递给JSP页面。`document.write()`方法是在HTML文档中向页面输出内容的一种方式。下面是一个简单的示例: 首先,在JSP页面中创建一个JavaScript函数,用于接收从JavaScript传递过来的数据。例如: ```jsp <script> function processData(data) { // 在此处对传递的数据进行处理 // 例如,可以将数据显示在页面上或者执行其他操作 document.getElementById("output").innerHTML = data; } </script> ``` 然后,在JavaScript中调用该函数,并传递要传递给JSP页面的数据作为参数。例如: ```javascript var data = "Hello, JSP!"; document.write('<script>processData("' + data + '");</script>'); ``` 在上述例子中,我们使用了`document.write()`方法将一个包含JavaScript代码的字符串直接写入到HTML文档中。该代码会立即执行,并调用JSP页面中定义的`processData()`函数,并将数据作为参数传递给该函数。 最后,JSP页面会在`processData()`函数中处理从JavaScript传递过来的数据。在上述例子中,我们通过`document.getElementById("output").innerHTML`将数据显示在页面上,但你也可以根据需求进行任意操作。 需要注意的是,`document.write()`方法会在当前文档中直接输出内容,因此要确保在调用该方法之前,文档的结构已经完全加载,以避免出现意外的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值