这个问题可能看起来像重复,但我真的找不到类似的东西。事情在这里有效,但在这里不是动态的:
var counter = 0;
function addInput(divName){
var newdiv = document.createElement('div');
newdiv.innerHTML = "Member " + (counter + 1) + " <br><input type='text' name='myInputs[]'>";
document.getElementById(divName).appendChild(newdiv);
counter++;
}
但在这里我稍微改变一下:
var counter = 0;
function addInput(divName){
var newdiv = document.createElement('div');
newdiv.innerHTML = "Member " + (counter + 1) + addmore();
document.getElementById(divName).appendChild(newdiv);
counter++;
}
因此,这里的新函数addmore()
返回由外部 PHP 代码生成的字段,该代码在 AJAX 的帮助下被调用。
函数 addmore();
是这样的:
addmore(){
$jd.ajax({
url: "<?php echo JURI::root(); ?>",
type: "POST",
data: {'option':'com_joomd', 'view':'itempanel', 'task':'loadfields', 'typeid':<?php echo $this->cparams->typeid; ?>, 'catid[]':checked, 'id':<?php echo (int)$this->item->id; ?>, "<?php echo jutility::getToken(); ?>":1, 'abase':1},
beforeSend: function() {
$jd(".poploadingbox").show();
},
complete: function() {
$jd(".poploadingbox").hide();
},
success: function(res) {
$jd('#fieldtable_id').html(res);
},
error: function() {
alert('error');
}
});
}
显然这部分$jd('#fieldtable_id').html(res);
正在做实际的工作,但我不能用它来动态地在这里引入新字段。
请指导我。