Моя страница имеет форму с 20 выбранными атрибутами , которые, по смыслу формы, сгруппированы в 10 связанных пар.
Я дал пользователям возможность рандомизировать варианты для каждая из 10 пар зависит от jQuery javascript.
Рандомизация выбора работает отлично. Нажатие на одну из ссылок «Рандомизировать» приведет к рандомизации рассматриваемой пары, в то время как другие пары выбора останутся без изменений.
Проблема в предупреждении / проверке onClick
на ссылке: потому что ссылки всегда «прослушивают» клик, даже если пользователь нажимает «Отмена», рандомизация выбранных вариантов по-прежнему имеет место.
То, что я ищу, - это способ разместить предупреждение по ссылке, которая даст пользователю возможность остановить запуск функции рандомизации, если выбран вариант «Отмена» или аналогичный.
Мои javascript навыки кодирования не так уж велики, но я предполагаю, что встроенный код ссылки не может быть изменен для этого, потому что ссылки всегда «прослушивают» для любого вида щелчка, и что сама функция javascript должна быть изменена, чтобы включить размещение предупреждения в ссылка, которая может отменить рандомизацию или позволить ей продолжить.
jQuery(document).ready(function() {
jQuery("#randomSelect1").click(function() {
var select = document.getElementById('pair_1_phrase');
var items = select.getElementsByTagName('option');
var index = Math.floor(Math.random() * items.length);
select.selectedIndex = index;
var select = document.getElementById('pair_1_descriptor');
var items = select.getElementsByTagName('option');
var index = Math.floor(Math.random() * items.length);
select.selectedIndex = index;
});
jQuery("#randomSelect2").click(function() {
var select = document.getElementById('pair_2_phrase');
var items = select.getElementsByTagName('option');
var index = Math.floor(Math.random() * items.length);
select.selectedIndex = index;
var select = document.getElementById('pair_2_descriptor');
var items = select.getElementsByTagName('option');
var index = Math.floor(Math.random() * items.length);
select.selectedIndex = index;
});
//8 more pairs like this..
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="pair_1_phrase" id="pair_1_phrase">
<option value="0">State</option>
<option value="1">Condition</option>
<option value="2">Health</option>
<option value="3">Strength</option>
</select>
<select name="pair_1_descriptor" id="pair_1_descriptor">
<option value="0">moderate</option>
<option value="1">great</option>
<option value="2">good</option>
<option value="3">superior</option>
</select>
<p><a onClick="return confirm('Randomise these selects?');" id="randomSelect1" href="#">Randomise</a></p>
<select name="pair_2_phrase" id="pair_2_phrase">
<option value="0">Requirement</option>
<option value="1">Need</option>
<option value="2">Lack</option>
<option value="3">Necessity</option>
</select>
<select name="pair_2_descriptor" id="pair_2_descriptor">
<option value="0">urgent</option>
<option value="1">pressing</option>
<option value="2">extreme</option>
<option value="3">crucial</option>
</select>
<p><a onClick="return confirm('Randomise these selects?');" id="randomSelect2" href="#">Randomise</a></p>
<!-- 8 more pairs like this.. -->