0
我有下面的函数,我试图用指定的ID填写表单。jQuery填写表单与数据表单数组问题
function input_form(form, data_array)
{
$.each(data_array, function(key, value){
//alert(key + " = " + value);
$(form).find('input[name="'+key+'"]').each(function()
{
switch(this.type)
{
case 'select-one':
case 'select-multiple':
$('input[name="'+key+'"] value:contains("'+value+'")').attr('selected','selected');
break;
case 'password':
case 'text':
case 'textarea':
//alert(key + " = " + value);
$('input[name="'+key+'"]').val(value);
break;
case 'checkbox':
case 'radio':
$('input[name="'+key+'"] value:name("'+value+'")').attr('checked','checked');
//this.checked = true;
}
});
});
}
我有以下问题:
它填补了文本框罚款,但不工作的收音机和复选框。
我有另一种形式具有相同的名称值,它也填写该表格即使表格具有不同的ID。
变种形式= '#form1中'
VAR data_array中=键是由值来填充在表单的名称的值。
任何人都可以看到我要去哪里出错或者它有什么问题。
谢谢。
SOLUTION
感谢马特球更清晰的代码。我编辑了收音机和复选框,因为它选择了最后一个收音机而不是实际选定的收音机。
function input_form(form, data_array)
{
$.each(data_array, function(key, value){
//alert(key + " = " + value);
$(form).find('input[name="'+key+'"]').each(function()
{
var $this = $(this);
switch(this.type)
{
case 'select-one':
case 'select-multiple':
$this.attr('selected', true);
break;
case 'password':
case 'text':
case 'textarea':
$this.val(value);
break;
case 'checkbox':
case 'radio':
//
if($(this).val() == value)
{
this.checked = true;
}
}
});
});
}
感谢您为收音机和复选框编辑的更干净的代码(请参阅我的文章)。 – jonny 2011-05-26 23:37:58
那么问题就解决了吗? – 2011-05-26 23:41:41