dropdown onsubmit = "window.open", всегда открывать новый файл, не перезаписывать его - PullRequest
0 голосов
/ 09 мая 2018

Если я нажму еще раз кнопку «Отправить», будет перезаписан существующий файл.Вопрос в том, как я могу заставить открыть новый файл и не перезаписать существующий файл?

<form id="form1" name="templet" onsubmit="window.open('','templet','width=900,height=1000,scrollbars=yes,')" action="/" method="post" target="templet">
  <select name="gotemplet" id="gotemplet" size="1" onChange="javascript:chgAction()" required>
    <option value="">Select an option</option>
    <option data-action="./test2.html" value="down">Service Down</option>
    <option data-action="./test1.html" value="mail">Mail</option>
  </select>
  <input type="submit" value="create template">
</form> 

Вот сценарий

(function() {
  var form = document.querySelector('#form1'),
    select = form.querySelector('#gotemplet'),
    action = {
      'test1': './test1.html',
      'test2': '. / test2.html ',
    };

  select.addEventListener('change', function() {
    var el = this,
      value = el.value;
    if (action[value]) {
      form.action = action[value];
    }
  }, false);
}());

1 Ответ

0 голосов
/ 09 мая 2018

Отправка формы всегда обновит текущую страницу. Если вы хотите открыть новое окно, вам нужно вызвать window.open, как показано в следующем фрагменте кода.

Пожалуйста, скопируйте и запустите этот код локально, "Run Code Snippet" не является поддерживая window.open

(function() {
  var form = document.querySelector('#form1'),
    select = form.querySelector('#gotemplet'),
    createBtn = form.querySelector('#createBtn'),
    action = {
      'down': './test1.html',
      'mail': './test2.html ',
    };
  
  var selectedAction = '';
  
  select.addEventListener('change', function() {
      var el = this,
      value = el.value;
      if (action[value]) {
        selectedAction = action[value];
      } else {
		selectedAction = "";
	  }
	  
  }, false);
  
  createBtn.addEventListener('click', function() {
    if(selectedAction != '') {
    window.open(selectedAction,'_blank','width=900,height=1000,scrollbars=yes,')
    }
  });
}());
<form id="form1" name="templet">
		  <select name="gotemplet" id="gotemplet" size="1" required>
			<option value="">Select an option</option>
			<option value="down">Service Down</option>
			<option value="mail">Mail</option>
		  </select>
		  <input type="button" id="createBtn" value="create template">
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...