2016-04-12 7 views
-2

У меня есть 2 переключателя с двумя разными значениями и a кнопка. Радиокнопки такие, как: один с значение 2 и один с значение 4.Получить значение радио кнопки и нажать кнопку

Это мои кнопки радио:

<input type="radio" value="2" name="match[rounds]" id="match_rounds_2"> 
<input type="radio" value="4" name="match[rounds]" id="match_rounds_4"> 

Это моя кнопка:

<a id="clickme">Click me</a> 

То, что я ищу, чтобы "выбрано" значение кнопки радио и на основе которого переключатель/значение, которое было выбрано, вызывает щелчок.

Если пользователь выбирает, радио кнопки с значением 2, спускового 1 клик, если выбрать, кнопка радио с значением 4, триггер 2 щелчки.

+1

Похоже, вы просите неправильный подход? Что именно ожидается? – Rayon

+0

Выход - это щелчок триггера, основанный на том, какие переключатели были нажаты/выбраны. Моя ссылка предназначена для моей вложенной формы, и я хочу сделать 1 вложенную форму или 2 на основе кликов. – Rubioli

ответ

0

Привет любезно проверить это https://jsfiddle.net/n2njbt9b/ я надеюсь, что это то, что вы хотите ...

JQuery

$(document).ready(function(){ 
    $('#match_rounds_2,#match_rounds_4 ').on('change', function(){ 
    if($('#match_rounds_2').is(':checked')) 
    { 
     $('#clickme').trigger('click'); 
    } 
    if($('#match_rounds_4').is(':checked')) 
    { 
     $('#clickme').trigger('dblclick'); 
    } 
    }); 

    $('#clickme').on('click', function(){ 
    alert ('clicked'); // Click logic 
    }); 

    $('#clickme').on('dblclick', function(){ 
    alert ('double clicked'); // Double Click logic 
    }); 
}); 
+0

Tnx, Это работает хорошо, но вместо предупреждения, как я могу сделать/вызвать фактический щелчок и двойной щелчок? – Rubioli

+0

@Rubioli Я на самом деле запускаю щелчок и двойной щелчок ... просто замените оператор предупреждения своей логикой – RRR

+0

один клик работает нормально, но двойные клики не запускаются/запускаются. – Rubioli

1

Вы можете сделать это, написав следующий код.

$('#clickme').on('click', function(){ 
var v = $('input[name=match[rounds]]:checked').val(); 
}) 
+0

Tnx @Ejaz Karim. Как это срабатывает 1 или 2 клика? – Rubioli

+0

Что означает триггер 1 или 2 щелчка? Вы имеете в виду двойной клик или один клик? –

+0

yes, Если выбрано значение переключателя = 2, один клик или если вы выбрали значение переключателя = 2, дважды щелкните. – Rubioli

0

// get some dom elements 
 
var $radios = document.getElementsByName('match[rounds]'); 
 
var $button = document.querySelector('#clickme'); 
 
var $log = document.querySelector('#log'); 
 

 
// dispatch event by name on element 
 
var dispatch_event = function(el, eventName){ 
 
    el.dispatchEvent(new Event(eventName)); 
 
} 
 

 
// debugging: add some logs to show exact clicks 
 
var add_log = function(root, log_string){ 
 
    var $new_log = document.createElement('li'); 
 
    $new_log.textContent = log_string; 
 
    root.appendChild($new_log); 
 
}; 
 
           
 
// iterate over all $radios elements 
 
[].forEach.call($radios, function(el) { 
 
    
 
    // bind event 
 
    el.onchange = function(event){ 
 
     
 
     // get value 
 
     var value = event.target.value; 
 

 
     // value is the radio.value property, 
 
     // when 2, t trigger 1 click 
 
     if(value == 2){ 
 
     
 
     // trigger event 1 time 
 
     dispatch_event($button, 'click'); 
 
     } else if (value == 4) { 
 
     
 
     // 2 times 
 
     dispatch_event($button, 'click'); 
 
     dispatch_event($button, 'click'); 
 
     } 
 
    } 
 
}); 
 

 
// the button that must be clicked 
 
// for demo, we just log it 
 
// YOU HAVE TO MAKE YOUR OWN LOGIC HERE 
 
$button.onclick = function(){ 
 
    add_log($log, 'clicked'); 
 
}
<input type="radio" value="2" name="match[rounds]" id="match_rounds_2"> 
 
<input type="radio" value="4" name="match[rounds]" id="match_rounds_4"> 
 

 
<a id="clickme">Click me</a> 
 

 
<ul id="log"></ul>

+0

Tnx, Это отлично работает, Вместо журнала, как сделать/запускать однократный и двойной щелчок по кнопке #clickme? – Rubioli

+0

Щелчок уже запущен, 'dispatch_event ($ button, 'click');' this вызывает событие click, вам просто нужно добавить свою логику в '$ button.onclick' –

+0

Спасибо, Im dummy, когда дело доходит до javascript/jQuery , Я сделал это: '$ button.onclick = function() { $ (" #clickme ") .click(); } 'Правильно? – Rubioli

Смежные вопросы