小弟刚接触ssh,在做一个入门的小程序
我想实现这一功能:输入框失去焦点的时候,将输入框的内容传入相应的action,然后在数据库中查询该值是否存在。查阅了N篇网上的参考资料之后,勉强写出了一个程序,但是不成功。经过就检查,发现应该是从jsp页面向action传值的时候没有传进去。下面贴出相关代码,请大家指教!jsp代码:<tr>
<td>用户名:</td>
<td><input type="text" name="user.username" id="username" onblur="checkusername(this.value)"/></td>
        <td>
            <div>
                <sx:div id="checkusernamediv" href="checkusername.action" listenTopics="checkuname" formId="checkusernameform"/>
                <s:form id="checkusernameform" name="checkusernameform">
                 <s:hidden name="uname" value="nuanme"/> 
                </s:form>
            </div>
        </td>
</tr>js代码:function checkusername(username){
if(username !== ''){
document.getElementsByName("uname")[0].value = username;
dojo.event.topic.publish("checkuname");
}
}Action.java:public String execute(){
this.uname = "admin";//这里将这个值写死测试action,发现action没问题,也能正确像jsp页面返回信息。
if(this.registerService.isUserExist(this.uname)){
this.message = "用户名已经存在";
}
else{
this.message = "用户名可以使用";
}
return SUCCESS;
}

解决方案 »

  1.   

    jsp代码中的 [color=#FF0000] 标签是csdn加上的。原本想把那两句高亮显示一下
      

  2.   

    解决了,<form>标签不能嵌套到另一个<form>的里面,放到最外面就好了。
      

  3.   

     <s:form id="checkusernameform" name="checkusernameform">
                        <s:hidden name="uname" value="nuanme"/> 
                    </s:form>

    你想通过form提交吗?还是ajax ?如果是form  你的form没有配置action呀..你可以在失去焦点的时候通过js来提交form 就行了