struts 2中的AJAX验证

时间:2009-02-04 10:49:42

标签: javascript ajax validation

我们可以在struts 2应用程序中使用AJAX进行客户端验证吗? 如果是,那么请让我知道这个程序。

7 个答案:

答案 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来验证表单,或者更好的是,在完成所有必填字段之前不要启用提交表单,避免用户沮丧(您具体告诉他错误的位置和如何纠正它)并为其添加另一层验证。

在这种情况下,您可以针对服务器预先验证UsernameE-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。 (我不是网络设计师,甚至我似乎比你更了解;)不要这样离开!)