如何在新窗口中创建HTML表单
How to create HTML Form in a new window
我有以下功能:
// open a new window. Create and submit form
function createSubmitForm(response) {
var external = window.open('about:blank', 'external');
var doc = external.document;
var body = $('body', doc);
// create a new form element
var form = $("<form id='authForm'></form>");
// set the form's attributes and add to iframe
form.attr("action", response.action)
.attr("method", response.method);
form.appendTo(body);
// create form elements;
for (var i = 0, len = response.fields.length; i < len; i++) {
var field = response.fields[i];
if (field.name != "") {
$("<input type='hidden'/>")
.attr("name", field.name)
.attr("value", field.value)
.appendTo(form);
}
}
// submit the form
form.submit();
}
当我尝试执行它时,我得到一个"未指定错误"在form.appendTo(body)
。
我在这里做错了什么?
试试这个:
请注意您的服务器上必须有一个空白页http://localhost/some-blank-page-on-your-server.php
<!DOCTYPE html>
<html>
<head>
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<style>
article, aside, figure, footer, header, hgroup,
menu, nav, section { display: block; }
</style>
</head>
<body>
</body>
<script>
(function($) {
$(function() {
// open a new window. Create and submit form
function createSubmitForm(response) {
var external = window.open('http://localhost/some-blank-page-on-your-server.php', 'external');
setTimeout(function() {
var doc = external.document;
var body = $('body', doc);
// create a new form element
var form = $("<form id='authForm'></form>");
// set the form's attributes and add to iframe
form.attr("action", response.action)
.attr("method", response.method);
// create form elements;
for (var i = 0, len = response.fields.length; i < len; i++) {
var field = response.fields[i];
if ( field.name !== "" ) {
$("<input type='text'/>")
.attr("name", field.name)
.attr("value", field.value)
.appendTo(form);
}
$("<input type='submit' value='submit' />").appendTo(form);
}
// submit the form
form.submit();
body.append(form);
}, 1000);
}
createSubmitForm({
action: 'http://www.example.com',
method: 'get',
fields: [{
name: 'field1',
value: 'some value'
}]
});
});
})(jQuery);
</script>
</html>
使用文档。当你想在一个新窗口中写的时候再写。你这样做的方式并不适用于所有的浏览器。
尝试使用jquery在附加
时定义表单$(形式).appendTo(身体);
我认为更简单的方法是使用jquery UI dialog
我会在appendTo之前抛出一个警告(表单),以查看页面认为此时的表单变量是什么。
另一个帮助查明问题的方法是在firefox中加载firebug并使用它来调试问题。作为一个快速的测试,我将摆脱骆驼的情况下,虽然我之前有实例,即使它应该是骆驼的情况下,它只工作,当它是所有的小写。通常是在IE中。很傻,但这是一个快速检查。
相关文章:
- 从Javascript和Php变量创建Html模板文档
- 为非列表项目创建HTML实时搜索
- 使用javascript动态创建html内容/元素
- 如何使用jQuery动态创建HTML输入
- 在 JQUERY 中创建 HTML 后,Jquery 方法不起作用
- 使用HTML标记中的JS变量在Javascript中动态创建HTML
- 如何使用jQuery和乘法行和列创建HTML表
- MVC 4:使用 JQUERY 和 PartViewResult 动态创建 HTML 文本框.如果代码是动态添加的,如何
- 如何将函数绑定到使用链接函数创建 HTML 的角度指令
- 我需要使用AngularJS从JSON文件创建HTML元素
- 从Ajax Arraybuffer响应类型创建HTML画布
- 创建HTML对象的Javascript与创建HTML字符串的比较
- 在动态创建html元素之后,是否可以触发事件
- 如何在动态创建html时实现分层标题组织
- 如何从输入到url的路径创建html文件
- 从sql server中用javascript创建HTML表
- 如何在表单中创建html元素,而无需重新加载页面
- 做全栈JavaScript框架在客户端或服务器上创建HTML
- 使用JQuery创建HTML父标记
- 在服务器端创建html元素VS将数据作为JSON获取,并使用javascript创建标签