通过javascript操纵表单目标

时间:2016-03-10 17:21:08

标签: javascript

我使用函数通过表单提供不同的变量。

function nav(target,array){
	var arrayLength=array.length;
	if(target===1){
		document.getElementById(10).target='_blank';
	}
	for(var i=0; i<arrayLength; i++){
            document.getElementById(i).value=array[i];
        }
	document.navi.submit();
}
<form id=10 action='' method='post' name='navi'>
	<input type='hidden' id=0 name=nav[0] value=''>
	<input type='hidden' id=1 name=nav[1] value=''>
	<input type='hidden' id=2 name=nav[2] value=''>
	<input type='hidden' id=3 name=nav[3] value=''>
	<input type='hidden' id=4 name=nav[4] value=''>
</form>

如果我设置target = 0,它应该在同一页面上执行表单,如果为1它应该打开一个新窗口。

一切正常,但是如果我关闭新窗口并继续其他窗口并单击Target = 0的按钮,它仍会打开一个新窗口。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

数字似乎不是问题。我重新创建了一个非常简单的版本,这次没有数字和文本而不是。

<!DOCTYPE HTML>
<HTML>
<head>
	<meta charset="utf-8"></meta>
	<script type="text/javascript">
		function nav(target){
			if(target==='outside') document.getElementById('testform').target='_blank';
			document.formtest.submit();
		}
	</script>
</head>
<body>
	<form id='testform' name='formtest' action=''>
		<div onclick="nav('inside')">Button1</div>
		<div onclick="nav('outside')">Button2</div>
	</form>
</body>
</HTML>

如果单击button1,则会按预期重新加载。

如果单击button2,则会按预期打开一个新窗口。

如果您关闭新窗口并再次单击button1,则会打开一个新的窗口,该窗口不是... ...