我想知道如何使用JSON填充表单是否可行?
我有一个JSON字符串,我使用PHP的json_encode()
和我想使用JSON字符串来填充表单控件(如textarea或文本输入).
如何在不使用外部插件的情况下实现这样的功能(比如我看到的jQuery populate插件).
编辑:JSON格式:
[{"id":"41","parent_id":null,"node_name":"name","slug":"","lft":"3","rgt":"4"}]
Run Code Online (Sandbox Code Playgroud)
这是我从json_encode()得到的
Now*_*ath 52
这里有一个问题textarea,然后我将其更改为default开关值
使用此选项可将值分配给多个控件:
function populate(frm, data) {
$.each(data, function(key, value) {
var ctrl = $('[name='+key+']', frm);
switch(ctrl.prop("type")) {
case "radio": case "checkbox":
ctrl.each(function() {
if($(this).attr('value') == value) $(this).attr("checked",value);
});
break;
default:
ctrl.val(value);
}
});
}
Run Code Online (Sandbox Code Playgroud)
Guf*_*ffa 20
对于文本控件(即没有收音机或复选框),您可以创建一个简单版本的填充函数:
function populate(frm, data) {
$.each(data, function(key, value){
$('[name='+key+']', frm).val(value);
});
}
Run Code Online (Sandbox Code Playgroud)
用法示例:
populate('#MyForm', $.parseJSON(data));
Run Code Online (Sandbox Code Playgroud)
演示:http://jsfiddle.net/Guffa/65QB3/3/
谢谢Nowshath.它对我有用.我在您的版本中添加了额外的检查,以便能够填充选择选项.
function populateForm(frm, data) {
$.each(data, function(key, value){
var $ctrl = $('[name='+key+']', frm);
if($ctrl.is('select')){
$("option",$ctrl).each(function(){
if (this.value==value) { this.selected=true; }
});
}
else {
switch($ctrl.attr("type"))
{
case "text" : case "hidden": case "textarea":
$ctrl.val(value);
break;
case "radio" : case "checkbox":
$ctrl.each(function(){
if($(this).attr('value') == value) { $(this).attr("checked",value); } });
break;
}
}
});
}; // end of populateForm() function
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48054 次 |
| 最近记录: |