Window.location.href有时无法正常工作的原因是什么?

时间:2013-10-24 08:01:13

标签: java javascript jquery jsp

jsp页面提交按钮onclick函数在javascript中。当我第一次点击按钮时没有重定向到CallService.jsp。我点击该按钮两到三次,之后只会重定向该页面。

请给我解决方案或理由

我的代码

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>

<script type="text/javascript">

function sample()
{

    var uname = document.getElementById("uname").value;
    //var pwd = document.getElementById("pwd").value;

    window.location.href("CallService.jsp?username="+uname);
}


</script>


<body>

<h3>User Login</h3> <br>

<form name="userlogin" method="post">

User Name : <input type="text" name="uname" id="uname"> <br>

Password : <input type="text" name="pwd" id="pwd"> <br>

<input type="submit" value="Submit" onclick="sample(this);" > 
<input type="reset" value="Cancel"> 

<div id="name"></div>
<div id="email"></div>

</form>

</body>
</html>

CallService.jsp

<%


  String uname = request.getParameter("username");
  //String pwd = request.getParameter("password");


  out.println(uname);

%>

6 个答案:

答案 0 :(得分:2)

您的按钮类型是

<input type="submit" value="Submit" onclick="sample(this);" > 

将其替换为:

<input type="button" value="Submit" onclick="sample(this);" > 

在提交此类表单时调用您的函数:

<form method="post" name="fromname" onsubmit="yourfunction()">

答案 1 :(得分:2)

试试这个:

window.location.href = "CallService.jsp?username="+uname;

您正在提交表单并同时重定向到其他表单。这不对

答案 2 :(得分:1)

<input type="submit" value="Submit" onclick="sample(this);" > 

您无法提交和重定向此内容。

在提交表单的servlet / jsp中,重定向页面。

答案 3 :(得分:0)

请尝试:

function sample()
{

    var uname = document.getElementById("uname").value;
    //var pwd = document.getElementById("pwd").value;

    window.location.href("CallService.jsp?username="+uname);
    //FUNCTION MUST RETURN FALSE!!
    return false;
}

<input type="submit" value="Submit" onclick="return sample(this);" > 

这样在进行回发之前需要对js函数进行评估

答案 4 :(得分:0)

为什么不尝试从你的java类重定向,比如

  

actionResponse.sendRedirect( “CallService.jsp”);

答案 5 :(得分:0)

由于您在此处使用javascript获取数据:

var uname = document.getElementById("uname").value;

没有必要使用“提交”按钮。尝试改变

<input type="submit" value="Submit" onclick="sample(this);" > 

<input type="button" value="Submit" onclick="sample(this);" >