当用户在文本框中输入模糊值时,我有订单列表我想在服务器端验证该值,然后根据服务器的true或false显示正确或错误的图标。我正在使用struts2,jquery。
我在ajax中很穷,所以请尽可能详细地回答我的问题
提前致谢。
更新感谢您的回复,我尝试了Fluidbyte解决方案,但作为回应,我得到了整个HTML。我在不同地方的参赛作品如下。
struts.xml中
<action name="validate" class="orders" method="validate"/>
JSP
<td><s:textfield name="serial" id="serial" theme="simple"/></td>
<td><SPAN id="result"></SPAN> </td>
动作类
public String validate() {
result = myOrdSvc.validate(value);
return SUCCESS;
}
/**
* @param result
* the result to set
*/
public void setResult(String result) {
this.result = result;
}
/**
* @return the result
*/
public String getResult() {
return result;
}
orders.js
$('#serial').blur(function(){
$.post('validate',{ value: $(this).val() },function(data){
$("#result").html(data);
});
});
结果“数据”完全是一个HTML,而不仅仅是“true”或“false”我将返回。
答案 0 :(得分:0)
从服务器端获得响应非常容易:
$('input').blur(function(){
$.post('path/to/file.ext',{ value: $(this).val() },function(data){
// 'data' is whatever the server returns...
});
});
在服务器端,您将获得一个名为&#39; value&#39;的POST。然后你可以评估。
回调函数返回&#39;数据&#39;其中包含脚本返回的内容
答案 1 :(得分:0)
对服务器页面进行jQuery ajax
调用,让服务器给出响应并根据该节目显示相关图像
$(function(){
$("#txtUserName").keyup(function(){
$.get("someserverpage.php?key="+$(this).val(),function(data){
//check value in data variable and do whatever you want to do (show hide image)
});
});
});
答案 2 :(得分:0)
除Fluidbyte解决方案外,Action类的更改为
再次感谢Fluidbyte 。
1)将返回类型更改为void
2)使用PrintWriter将结果写入jsp。
public void validate() {
result = myOrdSvc.validate(value);
PrintWriter writer = ServletActionContext.getResponse().getWriter();
writer.write(result);
}