Javascript 从字符串向DOM追加表单
My Mootools函数获取一个JSON对象,它是字符串格式的html表单Javascript 从字符串向DOM追加表单,javascript,dom,mootools,Javascript,Dom,Mootools,My Mootools函数获取一个JSON对象,它是字符串格式的html表单 var req = new Request.JSON({ method: 'post', url: 'index.php', onSuccess: function(r) { if (typeof(r)!='undefined' && r!=null) { $('my_div').set('html',r.form);
var req = new Request.JSON({
method: 'post',
url: 'index.php',
onSuccess: function(r) {
if (typeof(r)!='undefined' && r!=null)
{
$('my_div').set('html',r.form);
}
});
是否有一种方法可以将字符串响应转换为HTML元素,以便稍后执行以下操作:
document.myForm.submit();
我知道我可以解析每个表单元素并逐个创建DOM元素,但是有没有更简单的方法将表单从字符串转换为适当的DOM元素
令人惊讶的是,上面的代码在FF和IE中工作,但在Chrome中,当我尝试提交表单时失败了
Uncaught TypeError: Cannot call method 'submit' of null
因为字符串没有转换为实际的DOM元素
编辑
alert(r.form); //Prints the form OK
$('my_div').set('html',r.form);
alert($('my_div').innerHTML); //Prints the form without the <form> tags..
警报(r.form)//打印表单好吗
$('my_div').set('html',r.form);
警报($('my_div').innerHTML)//打印不带标签的表单。。
只有铬
修复
在我尝试将一个表单插入到另一个表单中的div中之后,Chrome显然不接受这一点。在将表单插入DOM后,您必须选择该表单:
var div = $('my_div');
if (typeof(r)!='undefined' && r!=null) {
div.set('html',r.form);
}
var form = div.getElement('form');
form.fireEvent('submit');
您可以使用Request.HTML来实现这一点——听起来像是通过JSON属性发送HTML。没有勺子。谢谢Dimitar,我需要它是一个json对象,因为我也从服务器端获得了其他东西。谢谢Idiqual,我认为这不是问题所在