#javascript
#javascript
Вопрос:
У меня есть следующий код
<script>
function Results()
{
document.report_form.action = "index.php?p=report_view";
document.report_form.target = "_blank";
document.report_form.submit();
return true;
}
function CSV()
{
document.report_form.action = "csv.php";
document.report_form.target = "_blank";
document.report_form.submit();
return true;
}
</script>
<form name='report_form' method='post'>
<input type='submit' name='view_table' value='Display' onclick="return Results();">
<input type='submit' name='view_csv' value='Export CSV' onclick="return CSV();">
</form>
При использовании Firefox или Chrome двойное всплывающее окно не запускается, при использовании IE8 пользователи нажимают один раз на кнопку, и появляется либо 2 всплывающих окна, либо 2 запроса на загрузку.
Я не мог найти решение этой проблемы, не могли бы вы показать мне, где я ошибаюсь?
Спасибо
Комментарии:
1. Я подозреваю, что этот код
document.report_form.target = "_blank"; document.report_form.submit();
при нажатии должен открыть новое окно с отчетом.2. Вы отправляете форму дважды: просто удалите
document.report_form.submit();
строки.3. вы правы теневой мастер, большое спасибо
Ответ №1:
Попробуйте вернуть false; вместо возврата true;
Комментарии:
1. Если вы не объясните и не дадите более подробной информации, это должен быть комментарий — ожидается, что ответ будет содержать больше деталей.
2. @ShadowWizard — Обычно я бы согласился, что лучше больше деталей, но в данном случае я думаю, что довольно очевидно, что в этом ответе говорится, что два места в коротком коде вопроса, которые есть
return true;
, должны быть изменены наreturn false;
. (Учитывая этот пример кода, я не могу придумать никакой другой интерпретации.) Не то чтобы было бы неплохо узнать, почему это все исправит, но этой информации достаточно, чтобы заставить код работать…3. @nnn справедливо, ответ может решить вопрос, но добавление деталей, объясняющих, почему он решается, также сделало бы его хорошим ответом, а не просто обычным тривиальным ответом. Кто-то предложил полностью изменить этот ответ час назад, чтобы сделать его таким, каким он должен был быть с самого начала, но я проголосовал за его отклонение — автор ответа не достоин баллов, присужденных в результате чужой работы.