我使用JQuery Validate驗證我的webapp上的表單。我可以通過JQuery驗證的規則列表中使用來驗證我的形式是這樣的:從服務器獲取JSON函數
$("#myform").validate({
rules: {
age: {
required: true,
min: 3
},
parent: {
required: function(element) {
return $("#age").val() < 13;
}
}
}
});
現在我想在服務器上生成的驗證規則,而不是在我的JavaScript編碼他們,做一個$就請求獲取它們,將它們附加到表單並完成設置。
但這
{
rules: {
age: {
required: true,
min: 3
},
parent: {
required: function(element) {
return $("#age").val() < 13;
}
}
}
}
不是有效的JSON,因爲函數聲明。有沒有辦法做到這一點?
詳細說明:我的應用程序由靜態HTML和JS構成,我與服務器的唯一交互是使用一些返回JSON的REST服務。 所以,當我從服務器得到一個人,因爲我想在表單編輯它,我做
$.ajax({url: '/person/1',
success: function(data) {
/* fill form fields */
...
/* get validation rules from server and attach to form
something like */
$.ajax({url: '/person/validation_rules',
success: function(rules) {
/* something like */
$('#myform').validate(rules);
}
}
});
感謝。
JavaScript函數不是JSON有效的數據類型,將其轉換成字符串,然後使用' eval'(因爲你信任源)並以此方式執行。 – Anders
@Anders - 這太過分了......您將從服務器上的JS文字轉到JSON字符串,使用字符串編碼函數,然後通過線路發送它,反序列化JSON字符串,然後解碼功能?爲什麼不把它作爲一個文字發送呢? – jvenema