-2

我在一个jsp页面中编写了一个js函数,用于计算两个日期之间的天数:

    <script type="text/javascript">
     function chk(d,e)
     {
      var x = d.split('/')
      var y = e.split('/')
      var a = new Date(x[2],x[0],x[1])
      var b = new Date(y[2],y[0],y[1])
      var c = ( b - a )
      var d = c / (1000 * 60 * 60 * 24)
     }
    </script>

同样的jsp页面也有一个文本框:

    <input type="text" name="id">

我想从不同的jsp页面访问由js函数计算的值,即'd'和文本框的值,即'id'。我该怎么做???

4

2 回答 2

0

您可以制作一个 .js 文件并将脚本放入其中,然后在需要 javascript 的文件中使用 script 标签导入 js 文件。

<script src="myscripts.js"></script>
于 2013-07-11T10:28:41.927 回答
0

您可以使用这两种方法中的一种,在第一种方法中,您将与值(d 和 id)一起被重定向到第二页,但在第二种方法中,您可以留在第一页,而值将被提交到第二页。
第一的

您可以创建 aform并将其textfield放入其中,还hidden input field可以将带有 的值的a 放入其中d

<form action="2ndpage.jsp" method="POST" onsubmit="initializeVar()">
<input type="hidden" value="" name="d" id="id1">
<input type="text" id="id" name="text">
<input type="submit">
</form>

<script>
  function initializeVar()
  {
    document.getElementById("id1").value=d;
  }
</script>

第二

您可以ajax用于此目的。

function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    alert("values posted");
    }
  }
var text_box_text = document.getElementById("id");
var args = "?d=" + d + "&text=" + text_box_text;
xmlhttp.open("GET","2ndpage.jsp"+args,true);
xmlhttp.send();
}

只需查看底部的第 3、4 和 5行。
当您想将这些值发送到另一个页面时,只需调用您的函数loadXMLDoc()

2ndpage.jsp您可以使用

int date_diff = Integer.parseInt(request.getParameter("d"));
String text_field_text = request.getParameter("text");
于 2013-07-12T17:50:29.093 回答