<form action ="servlet/UserRegServlet" method="post">
<table>
<tr>
<td>用户名:<input type="text" name="name"></td>
<td><input type="submit" value="查看此用户是否可用" onclick="location.href='servlet/CheckUserServlet'"></td>
</tr>
<tr>
<td>密码:<input type="password" name="password"></td>
</tr>
<tr>
<td><input type="submit" value="提交"></td>
</tr>
</table>点下‘查看此用户是否可用’按钮 把这个表单中的用户名文本框里的值传到CheckUserServlet当中 怎么实现?

解决方案 »

  1.   

    可以在'servlet/CheckUserServlet'后面加参数列表来传值,比如'servlet/CheckUserServlet?name='+name.values,在你的servlet的doget方法中接收这个传值
      

  2.   

    <input type="submit" value="查看此用户是否可用" onclick="location.href='servlet/CheckUserServlet'"> </td> 改为<input type="button" value="查看此用户是否可用" onclick="checkUserName()"> </td> 然后在前面定一个javascript函数:
    <script>function checkUserName() {
    var url = 'servlet/CheckUserServlet?username=' + document.getElementsByName("username")[0].value;
    location.href= url;
    }</script>
      

  3.   

    如2楼一样,你做这种验证应该要用ajax,把2楼的代码改成异步提交就行了
      

  4.   

    syj.js文件            var syj={};
                //发送ajax请求的方法
                syj.Ajax=function(url,obj){
                    var httpRequest;
                    if (window.ActiveXObject)try{httpRequest = new ActiveXObject("Microsoft.XMLHTTP");}catch (e){try{httpRequest = new ActiveXObject("Msxml2.XMLHTTP");}catch (e){}}
                    if (!httpRequest){alert('不能创建XMLHTTP实例');obj.onComplete();}
                    httpRequest.onreadystatechange = function(){if (httpRequest.readyState == 4){obj['onComplete'](httpRequest);}}
                    if(url.indexOf('machineDate')==-1) url+=(url.indexOf('?')==-1?"?":"&")+("machineDate="+new Date().getTime());
                    url+=(url.indexOf('?')==-1?"?":"&")+obj.parameters;
                    if(obj.asynchronous==true) httpRequest.open(obj.method, url); else httpRequest.open(obj.method, url,false);
                    httpRequest.send(null);
                    return httpRequest;
                };<input type="submit" value="查看此用户是否可用" onclick="test();">         <script> 
                function test(){
                    alert("test start ");
                    var url='servlet/CheckUserServlet?username=' + document.getElementsByName("username")[0].value;
                    syj.Ajax(url,{
                                    method  : "GET",
                                    parameters : "s?wd=csdn",
                                    asynchronous : true,
                                    onFailure : function(httpRequest){
                                                        alert("出错了!");
                                                   },
                                    onComplete  : function(httpRequest){
                                                            if(httpRequest.status==200){
                                                                //httpRequest.responseText是后台返回的消息,或者逻辑
                                                                         //比如返回true/false
                                                                 //if(httpRequest.responseText==ture)alert('存在的用户')
                                                                alert(httpRequest.responseText);
                                                            }
                                                         }
                                     }
                                );
                    alert("test end ");
                }
             </script>
    原文网址:http://blog.csdn.net/sunyujia/archive/2008/05/02/2363085.aspx
      

  5.   


    楼上两位朋友的方法都时可行的 
    本质上都一样,不过2楼通过js函数封装起来。
    但要注意函数中的属性名要和form中属性名对应楼主要记住:当你向你的链接处理传参数时,
    可以在链接的后面加上:?属性名=“属性值”这样就可以了。
      

  6.   

    2楼很明确了
    ajax估计楼主要难实现了
      

  7.   

    也可以这么做呀
    <input type="submit" value="查看此用户是否可用" onclick="form.action='servlet/CheckUserServlet'">
    更改表单的action属性,然后提交过去就可以了
      

  8.   

    2楼说的方法
    onclick="location.href='servlet/CheckUserServlet?name=属性值'"
    属性值的引号应该怎么加呢?