使用Scala Play Framework 2.2,Jquery表单序列化无法在facebox上运行

时间:2013-10-06 08:18:56

标签: javascript jquery scala playframework facebox

我知道也有一些类似的问题,但它们对我没有帮助。 我在Scala Play Framework中这样做。我在下面发布我的代码:

var saveNameRequest;    
function saveName(){
        if(!saveNameRequest){   
        saveNameRequest=$.ajax({
            type:"POST",                
            url:"edit?editType=saveName",
            data: $("#nameForm").serialize(),
            complete:function(){saveNameRequest=false},
            success: function(data){
                alert($("#nameForm").serialize())
            }//end success
          });
    }
}

表单序列化无效,正在打印空字符串。 什么都没有通过帖子,请帮助

<form method="POST" name="nameForm" id="nameForm">
        <tr>
            <td><font color=#3b5999>First Name:</font></td>
            <td><input type="text" name="fname" id="fname" value="@fName"></td>
        </tr>
        <tr>
            <td><font color=#3b5999>Middle Name:</font></td>
            <td><input type="text" placeholder="optional" name="mname" id="mname" value="@mName" ></td>
        </tr>
        <tr>
            <td><font color=#3b5999>Last Name:</font></td>
            <td><input type="text" name="lname" id="lname" value="@lName"></td>
        </tr>

        <tr>
            <td></td>
            <td><input name="save" id="save" type="button" value="save" onClick="saveName()"></td>
        </tr>
    </form>

2 个答案:

答案 0 :(得分:2)

我发现表单序列化不适用于scala 2.10中的facebox 我们必须发送所有字段的数据,这是我得到的唯一解决方案,

data:{
"fname":document.getElementById("fname").value,
"mname":document.getElement‌​ById("mname").value,
"lname":document.getElementById("lname").value
}

答案 1 :(得分:1)

您尚未关闭saveName()功能。关闭它后尝试。另外,请确保saveName()document.ready()之外。

将一个键添加到ajax数据参数以发送序列化字符串,如下所示:

data: { formData: $("#nameForm").serialize() },

编辑fiddle,似乎有效