2016-03-10 3 views
-1

Я использую функцию для доставки различных переменных через форму.манипулировать целью формы с помощью javascript

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

Если установить цель = 0 он должен выполнить форму на той же странице, если 1 он должен открыть новое окно.

Все работает нормально, но если я закрою новое окно и перейду в другое окно и нажмите кнопку, где Target = 0, он все равно откроет новое окно.

Любые идеи?

+0

HTML идентификатор значения не должны начинаться с цифры. Это кажется очень запутанным способом решить то, что вы пытаетесь сделать. Кажется почти круглым. –

ответ

0

Номера, похоже, не являются проблемой. Я воссоздал очень простую версию, на этот раз без цифр и текста вместо.

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

Если нажать button1 она перезаряжает, как предполагалось.

Если вы нажмете кнопку2, откроется новое окно, как предполагалось.

Если вы Закройте новое окно и снова нажмите button1 открывает новое окно, которое не inteded ... атрибут

+0

получил его, функция требует условия else с целью = '_ self' ... – Scuzzle