Да, вы можете сделать это все внутри OnClick кнопки (не JQuery):
<input type="radio" name="product" value="Apple"/>
<input type="radio" name="product" value="Orange"/>
<input type="radio" name="product" value="Grape"/>
<button type="button" id="ButtonHERE">CLICK TO GO HERE</button>
<button type="button" id="ButtonTHERE" onclick="
var elm=document.querySelector('input[name=\'product\']:checked');
if(elm) window.location.href='shoppingcart.html%3F' + elm.value;
">CLICK TO GO THERE</button>
Вы хотите, чтобы checked
радио-кнопка: чтобы избежать кодирования цикл (старый путь) или кучу вложенных if
(или тройников), это современный и правильный способ сделать это (за кулисами это все еще использует жесткую петлю).
%3F
- URL-кодировка для ?
Обратите внимание, что вам также может потребоваться escape/url-encode значения (в зависимости от используемых символов)!
Возможно, не выбрана радиокнопка (возможность в вашем текущем примере), затем querySelector('input[name=\'product\']:checked')
вернет null
. Таким образом, мы поймаем это с помощью if
и перенаправляем только, когда пользователь выбрал радиокнопку (вы можете опустить эту проверку, если у вас есть выбор по умолчанию, который пользователь может изменить только, тем самым гарантируя наличие выбранной кнопки).
Кроме того, вы можете оставить href
часть window.location
, так как оба будут работать одинаково.
Наконец, обратите внимание, что существует новый способ с тех пор, как пару недель (I в настоящее время не рекомендовал бы его, так как он был таким новым): RadioNodeList.
Если радио-кнопки в форме вы можете получить форму (elm_form
в данном примере) и сделать:
elm_form.elements['product'].value
захватить проверенное значение.
PS: было бы лучше, чтобы подключить функцию с помощью JavaScript (ваш вопрос несколько неопределенна в этом отношении):
document.getElementById('ButtonTHERE').onclick=function(){
var elm=document.querySelector('input[name="product"]:checked');
if(elm) window.location='shoppingcart.html%3F' + elm.value;
};
Спасибо, сэр. Работал как шарм! – Murphy1976