Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过JavaScript设置表单目标_Javascript_Forms - Fatal编程技术网

通过JavaScript设置表单目标

通过JavaScript设置表单目标,javascript,forms,Javascript,Forms,下面的表单.submit()打开了一个新窗口,尽管有form target='my-form-target,但iframe中没有显示任何内容。参见小提琴: createAndSubmitForm(); 函数createAndSubmitForm(){ var formBody=''; var formContainer=document.createElement('div'); var formTarget=document.createElement('iframe'); document.

下面的表单
.submit()
打开了一个新窗口,尽管有
form target='my-form-target
,但iframe中没有显示任何内容。参见小提琴:

createAndSubmitForm();
函数createAndSubmitForm(){
var formBody='';
var formContainer=document.createElement('div');
var formTarget=document.createElement('iframe');
document.body.appendChild(formContainer);
document.body.appendChild(formTarget);
formTarget.name='我的表单目标';
formContainer.innerHTML=formBody;
//将表单目标设置为iframe
//这将设置操作,但iframe在提交时不接收任何内容
formContainer.children[0]。target=formTarget.name;
//提交出现在一个新窗口中,就好像目标为空一样
formContainer.children[0]。提交();
}

我需要通过JS将新创建表单的目标设置为新创建的iframe。

再次回答我自己的问题。结果表明,在设置目标关系之前将新表单/iframe追加到文档时会发生此错误。我不清楚确切的顺序,但最后一个做附属物会起作用:


再次回答我自己的问题。结果表明,在设置目标关系之前将新表单/iframe追加到文档时会发生此错误。我不清楚确切的顺序,但最后一个做附属物会起作用:

createAndSubmitForm();

function createAndSubmitForm() {
  var formBody = '<form action="//fiddle.jshell.net"><input value="123"></form>';
  var formContainer = document.createElement('div');
  var formTarget = document.createElement('iframe');


  document.body.appendChild(formContainer);
  document.body.appendChild(formTarget);
  formTarget.name = 'my-form-target';
  formContainer.innerHTML = formBody;

  // setting form target to the iframe
  // this sets the action, but iframe does not receive anything on submit
  formContainer.children[0].target = formTarget.name;

  // submit comes in a new window as if target were _blank
  formContainer.children[0].submit();
}
  formTarget.name = 'my-form-target';
  form.target = 'my-form-target';

  document.body.appendChild(formTarget);
  document.body.appendChild(form);