我们可以在struts 2应用程序中使用AJAX进行客户端验证吗? 如果是,那么请让我知道这个程序。
答案 0 :(得分:2)
答案就在这里。
http://struts.apache.org/2.x/docs/ajax-validation.html 甚至提供原型示例而不是dojo
答案 1 :(得分:1)
AJAX是您可以通过它调用服务器端验证的机制。 AJAX中的“J”代表Javascript。
您通常会使用AJAX(以及Javascript)来调用某些不适合客户端验证的服务器端验证。例如,针对可接受值的表格验证邮政编码。
答案 2 :(得分:1)
正如Sergio所说,你可以使用这个,例如,在你有以下字段的注册表中:
Username
E-mail
Password
Repeat Password
您可以在用户提交之前设置一些javascript来验证表单,或者更好的是,在完成所有必填字段之前不要启用提交表单,避免用户沮丧(您具体告诉他错误的位置和如何纠正它)并为其添加另一层验证。
在这种情况下,您可以针对服务器预先验证Username
和E-mail
以查看它们尚未被采用。你可以做这样的事情(在jQuery中,从内存中):
$("#email").change(function(e) {
var $elem = $(this);
var val = $elem.val();
if (!val) {
myMarkField($elem, "not-valid");
myValidateForm("myForm");
} else if (!/^[a-z0-9_+.-]+\@([a-z0-9-]+\.)+[a-z0-9]{2,7}$/i.test(val)) {
myMarkField($elem, "not-valid");
myValidateForm("myForm");
} else {
$.getJSON("isEmailAvailable.php", {email:val}, function(result){
if (result.available) {
myMarkField($elem, "valid");
myValidateForm("myForm");
} else {
myMarkField($elem, "not-valid");
myValidateForm("myForm");
}
});
}
});
isEmailAvailable.php
应返回{ available: true }
答案 3 :(得分:0)
你会怎么做?您使用JS进行客户端编程(包括验证),它与服务器端无关。
此外:通过客户端JS进行服务器端验证是个坏主意,因为所有验证代码都会向用户公开。
答案 4 :(得分:0)
如果您要进行服务器端输入验证,那么您需要使用JavaScript进行什么?
我会假设您在服务器端使用PHP,在这种情况下,您需要在那里验证它,而不是发出另一个无意义的请求。
如果你想使用AJAX进行一些服务器端验证(以及你使用JQuery),这至少应该让你开始:
function validate(fieldName)
{
$.get('/validation.php',
{'value' : fieldName.value, 'name' : fieldName.name},
function(data, textStatus)
{
if(data)
{
fieldName.style.class = 'validFormInput';
}
else
{
fieldName.style.class = 'invalidFormInput';
}
})
}
我不是JS / JQuery专家,我没有对此进行测试,所以只是为了让你开始。
答案 5 :(得分:0)
我认为你需要阅读一些关于AJAX的内容。
我推荐此链接:http://rajshekhar.net/blog/archives/85-Rasmus-30-second-AJAX-Tutorial.html
我认为这很简单易懂。
基本上你有服务器和客户端代码。 JavaScript(客户端)可以使用Ajax(异步JavaScript和XML)调用URL,这非常类似于使用浏览器调用任何其他URL。主要区别在于没有页面重新加载。
您的JavaScript需要等待回复以便处理它(在您的示例中显示或隐藏错误消息)。
基本上,它允许您在服务器上执行某些代码,无需刷新页面即可更新您的页面。
答案 6 :(得分:0)
简而言之,AJAX应用程序架构使客户端(即在Web浏览器中运行的一段JavaScript)能够主动向服务器请求信息。大多数情况下,JavaScript客户端将使用收到的信息使用DOM更新浏览器文档的一小部分。
此外,JavaScript客户端代码可以做一些明显的验证,例如要发送到服务器的表单(由Danita's answer很好地显示)。
服务器可以是任何东西。它可能只返回一个普通的xhtml文件,或者可以通过调用生成响应的复杂PHP脚本来响应请求。哎呀,它甚至可能是完全用裸C实现的专用移动设备。只要它实现了http协议,客户端的请求就会被传输。这个可能是JavaScript。不太可能,但确实如此。
是的:如果您有运行JavaScript的服务器,可以使用'服务器端'JavaScript完成。但不是:这不太可能。
是的:您显然需要阅读AJAX。 (我不是网络设计师,甚至我似乎比你更了解;)不要这样离开!)