Java 如果我按下submit按钮,它将进入sevlet中的其他url
这是我的javascript代码,当我第二次按下submit按钮时,它将转到另一个url,但第一次它给出了结果,很好,有人能帮我吗Java 如果我按下submit按钮,它将进入sevlet中的其他url,java,javascript,ajax,jsp,Java,Javascript,Ajax,Jsp,这是我的javascript代码,当我第二次按下submit按钮时,它将转到另一个url,但第一次它给出了结果,很好,有人能帮我吗 function validatenewcat(){ var category = document.getElementById("cat").value; if(category==""){ setTimeout(document.getElementById("validate").innerHTML=
function validatenewcat(){
var category = document.getElementById("cat").value;
if(category==""){
setTimeout(document.getElementById("validate").innerHTML="!PLz Enter The Category Name", 2000);
return false;
}
else{
var url="catnamecheck.do?id="+category;
xmlhttp.open("post", url,true);
xmlhttp.send(null);
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){
var temp = xmlhttp.responseText;
obj = JSON.parse(temp);
if(obj.catgoryname==category) {
alert(obj.catgoryname);
alert(category);
document.getElementById("validate").innerHTML="!PLz Enter The Unique Category Name";
return false;
}
if(obj.catgoryname!=category){
alert("inside true"+obj.catgoryname);
alert("inside true"+category);
return true;
}
}
}
}
}
}
这是我的java代码,我从ajax调用这段代码
public Map<String, String> catuniqecheck(String id) {
Connection c = null;
PreparedStatement ps1 = null;
ResultSet rs1 = null;
String sql=null;
try{
c = JDBCHelper.getConnection();
if(c!=null)
{
Map<String, String> map = new HashMap<String, String>();
sql="select * from catgory where catgoryname=?";
ps1=c.prepareStatement(sql);
ps1.setString(1, id);
ps1.execute();
rs1=ps1.getResultSet();
if(rs1.next())
{
System.out.println("insdide of the catuniqecheck");
map.put("catgoryname",rs1.getString("catgoryname"));
}
return map;
}
else
{
System.out.println("DB connection Established");
return null ;
}
}
catch (Exception e) {
// TODO: handle exception
return null ;
}
finally{
JDBCHelper.close(rs1);
JDBCHelper.close(ps1);
JDBCHelper.close(c);
}
}
公共地图catuniqecheck(字符串id){
连接c=null;
PreparedStatement ps1=null;
结果集rs1=null;
字符串sql=null;
试一试{
c=jdbchalper.getConnection();
如果(c!=null)
{
Map Map=newhashmap();
sql=“从catgory中选择*,其中catgoryname=?”;
ps1=c.prepareStatement(sql);
ps1.设置管柱(1,id);
ps1.execute();
rs1=ps1.getResultSet();
if(rs1.next())
{
System.out.println(“catuniqecheck的输入”);
map.put(“catgoryname”,rs1.getString(“catgoryname”);
}
返回图;
}
其他的
{
System.out.println(“数据库连接已建立”);
返回null;
}
}
捕获(例外e){
//TODO:处理异常
返回null;
}
最后{
jdbchalper.close(rs1);
JDBCHelper.close(ps1);
jdbchalper.close(c);
}
}
这是我的sevlet代码
if (uri.contains("/catnamecheck.do")) {
Project p1=new Project();
String id=request.getParameter("id");
System.out.println("inside uniq check id"+id);
Map<String, String> result =p1.catuniqecheck(id);
if(result!=null)
{
System.out.println("inside success");
JSONObject json = new JSONObject();
json.accumulateAll(result);
System.out.println("inside json"+json.toString());
response.setContentType("application/json");
response.getWriter().write(json.toString());
}
if(result==null)
{
System.out.println("inside filure");
}
}
if(uri.contains(“/catnamecheck.do”)){
项目p1=新项目();
String id=request.getParameter(“id”);
System.out.println(“内部uniq检查id”+id);
映射结果=p1.catuniqecheck(id);
如果(结果!=null)
{
System.out.println(“内部成功”);
JSONObject json=新的JSONObject();
json.acgregateAll(结果);
System.out.println(“内部json”+json.toString());
setContentType(“应用程序/json”);
response.getWriter().write(json.toString());
}
如果(结果==null)
{
System.out.println(“内螺纹”);
}
}
这是我的jsp代码
<form name="frm" action="createnewcatgoryBean.jsp" onsubmit="return validatenewcat()" method="post">
<table style="padding: 5px 0px 0px 8px;">
<tr>
<th colspan="2">
<div style="width: width:271px; color:red;" id="validate"></div>
</th>
</tr>
<tr>
<th>Category Name<span>:</span></th><td><input id="cat" onblur="return validatenewcat()" type="text" name="category">
</td>
</tr>
<tr>
<th>Quotations form<span>:</span></th><td><input type="checkbox" name="quotations"></td>
</tr>
<tr>
<th>Agreement form<span>:</span></th><td><input type="checkbox" name="agreement"></td>
</tr>
<tr>
<th>Payment form<span>:</span></th><td><input type="checkbox" name="payment"></td>
</tr>
<tr>
<th>ETI<span>:</span></th><td><input type="checkbox" name="eti"></td>
</tr>
<tr>
<td colspan="2" style="float:right; padding-top:15px">
<input type="submit" value="Submit" style="width: 60px;">
</td>
</tr>
</table>
</form>
类别名称:
报价表:
协议格式:
付款方式:
ETI:
您已经设置了表单action=“createnewcatgoryBean.jsp”
。如果验证成功,它将提交到此页面。为了避免提交,请从javascript返回false
else {
var url = "catnamecheck.do?id=" + category;
xmlhttp.open("post", url, true);
xmlhttp.send(null);
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
var temp = xmlhttp.responseText;
obj = JSON.parse(temp);
if (obj.catgoryname == category) {
alert(obj.catgoryname);
alert(category);
document.getElementById("validate").innerHTML = "!PLz Enter The Unique Category Name";
return false;
}
if (obj.catgoryname != category) {
alert("inside true" + obj.catgoryname);
alert("inside true" + category);
return true;
}
}
}
}
return false; //return false to avoid form submission
}
其他哪个url?第二次按下submit按钮后,它将进入createnewcatgoryBean.jsp此url返回false,但如果将return false放在末尾,则该页面不会提交。我不太理解您的意思,如果我将return false语句放在假续。。它不是回归真实本身,而是变成虚假//返回false以避免表单提交如果我始终包含它将返回false此函数不会向函数返回true