Jquery 在Play框架中使用ajax加载模板

Jquery 在Play框架中使用ajax加载模板,jquery,ajax,playframework,Jquery,Ajax,Playframework,我正在尝试使用ajax驱动的html链接加载模板(html文件)。因此,我在左侧有一个导航栏,每个html锚调用一个jQueryAjax请求来加载右侧div中的模板 页面加载时,它是一个表单,但尝试验证表单时失败 使用ajax加载html模板有任何限制吗?如果我通过标准路由定义加载页面(http://localhost:9000/signup)它加载并验证表单 ajax代码类似于: $.ajax({ url: '/signup', type: 'GET',

我正在尝试使用ajax驱动的html链接加载模板(html文件)。因此,我在左侧有一个导航栏,每个html锚调用一个jQueryAjax请求来加载右侧div中的模板

页面加载时,它是一个表单,但尝试验证表单时失败

使用ajax加载html模板有任何限制吗?如果我通过标准路由定义加载页面(http://localhost:9000/signup)它加载并验证表单

ajax代码类似于:

    $.ajax({
      url: '/signup',
      type: 'GET',
      dataType: 'html',
      success: function(data){
        $('#signup).html(data);
      }             
    }); 
注册所做的全部工作是呈现页面:

    public static signup(){
      render();
    }
html模板是:

    #{extends 'main.html' /}
    #{set title:'test the validation' /}

    #{jQueryValidate class:models.User.class, key:'user' /}
    <div>
<p>Candidate...</p>

<form method="POST" id="joinForm">
    <p class="field">
        <span class="error">#{error 'user.firstname' /}</span>                     <label>Mobile</label>
        <input type="text" name="user.firstname"
            value="${flash['user.firstname']}" />
    </p>

    <input type="submit" name="create" value="Register" />
doValidation是表单验证(代码取自样本和测试/验证/样本7)

在改变我的设计之前,感谢您对解决这个问题的任何见解


谢谢

看起来您实际上并没有将表单的数据发送到@{candidate.index()}

因为您的代码块缺少data:property

像这样试试

    $('#joinForm').submit(function(e) {     
$.ajax({
 type: "POST",
 url: '@{candidate.index()}',
 data: $('#joinForm').serializeArray(),
 beforeSend: doValidation,
 success: function() {
     $('#success').html("created...");
 }
 });
 e.preventDefault(); 
    }); 

我找到了答案!这是一个jquery解决方案

发件人:

致:


其余的都一样。

嗨,我认为这不是问题所在,因为验证是客户端的。一旦它通过了,那么它将调用@{candidate.index()}。无法理解通过Ajax加载模板时验证失败的原因感谢提示..尝试了以下数据:$(“#joinForm”).serializeArray(),它返回:[object object],[object object]
    $('#joinForm').submit(function(e) {     
$.ajax({
 type: "POST",
 url: '@{candidate.index()}',
 data: $('#joinForm').serializeArray(),
 beforeSend: doValidation,
 success: function() {
     $('#success').html("created...");
 }
 });
 e.preventDefault(); 
    }); 
$('#joinForm').submit(function(e) 
$('#joinForm').live("submit", function(e)