日期:2014-05-18  浏览次数:20602 次

不提交页面,怎么啊js里的变量赋值给jsp呢?
1、页面有个文本输入框, <input   type= "text "   name= "giftNo "   value= " ">
2、用户输入值后,需要调用java做逻辑判断。
      如果true,则提交到下一页面;否则,“提示用户重新输入giftno”


------解决方案--------------------
function query(){
form=document.mapForm;
if(form.giftNo.value== " "){ //判断gift控件值是否为空
alert( "请输入giftNo! "); //弹出一个提示框
form.giftNo.focus(); //聚焦到该控件
return; //form没有被提交
}
}
<html:form action= "/index " method= "get ">
<input type= "text " name= "giftNo " id= "giftNo " value= "aaaa "> //id属性很重要。function里面的取控件值是依据ID的。
<input type= "button " id= "searchsubmit " onClick= "query() " value= "查询 "> //onclick就是指当点击“查询”时,就去执行上面的query函数。
</html:form>



------解决方案--------------------
用xmlhttp。
var xmlhttp=new ActiveXObject( "Microsoft.XMLHTTP ");
xmlhttp.open( "POST ", "DataServlet?giftNo= "+document.all.giftNo.value,false);
xmlhttp.send();
var reText=xmlhttp.responseText;
alert(reText)

自己写个Servlet,接收参数,在out.print();出来就是xmlhttp.responseText
很简单
------解决方案--------------------
写个SERVLET判断输入,输出相应内容
然后用xmlhttp.responseText得到相应的文本
用INDEX OF()比较下,如果符合就提交,不符合RETURN FALSE
------解决方案--------------------
Servlet中这样写:
public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding( "gb2312 ");
resp.setContentType( "text/http;charset=gb2312 ");

PrintWriter out = resp.getWriter();
String giftNo= req.getParameter( "giftNo ");
//你的判断函数
if (str_input.equals( " ")) {
//
out.print( "ok ");
}else{
out.print( "no ");
}


xmlhttp.responseText就是ok或者no