2014-11-16 2 views
-1

Как вернуть флажок обратно в unselected при нажатии? Два параметра флажка должны быть: «да, нет», «нет», «да» или «нет, нет», но как только был выбран флажок, я могу переключаться между покупкой и продажей (правильно), но как отменить выбор, выбранный снова щелчок, возврат к обеим невыбранным?JQuery duo checkbox, да нет, нет да, нет нет, как отменить выбор еще раз?

$('input.checkboxClass').on('click', function() { 
    $(this).parent().parent().find('.checkboxClass').prop('checked', false); 
    $(this).prop('checked', true) 
}); 

DEMO

+2

Из вашей DEMO я бы сказал, что нет смысла использовать флажки. Это относится к переключателям. [Пример W3Schools] (http://www.w3schools.com/html/tryit.asp?filename=tryhtml_radio) – eyetea

+0

Пожалуйста, снова прочитайте вопрос, переключатели не имеют смысла, так как мне нужно вернуться в состояние «нет». Если человек выбирает товар 2, покупает, то решает, вы не можете отменить выбор радиокнопки, поэтому, пожалуйста, установите флажки. – dandanwell

+0

@dandanwell Вы можете отменить выбор радио кнопки с помощью сброса. Проверьте мой ответ. –

ответ

3

Вместо всего этого, конвертировать флажков радиокнопок и группировать их, используя имя! И для отмены выбора вы можете просто выполнить сброс.

<form> 
 
    <table> 
 
    <tr> 
 
     <td>Product 1 </td> 
 
     <td><input type="radio" name="Product1" class="checkboxClass" />Buy</td> 
 
     <td><input type="radio" name="Product1" class="checkboxClass" />Sell</td>   
 
    </tr> 
 
    <tr> 
 
     <td>Product 2 </td> 
 
     <td><input type="radio" name="Product2" class="checkboxClass" />Buy</td> 
 
     <td><input type="radio" name="Product2" class="checkboxClass" />Sell</td>   
 
    </tr> 
 
    <tr> 
 
     <td>Product 3 </td> 
 
     <td><input type="radio" name="Product3" class="checkboxClass" />Buy</td> 
 
     <td><input type="radio" name="Product3" class="checkboxClass" />Sell</td>   
 
    </tr> 
 
    <tr> 
 
     <td colspan="3"><input type="reset" value="Clear All" /></td> 
 
    </tr> 
 
    </table> 
 
</form>

Нет JavaScript или ничего.

0

просто установите флажок своего «собрата» <td> к ложным, а не всех флажков вашего <tr>:

$('input.checkboxClass').on('click', function(e) { 
    $(this).parent().siblings().find('.checkboxClass').prop('checked', false); 
}); 

JSFiddle

+0

Ничего себе, ты получил это северокилдонан. Это ответ. Я ценю вашу помощь. – dandanwell

+0

@ dandanwell, если это ответ, тогда вы должны принять его, отметив галочку под стрелками голосования. – royhowie

0

Я думаю, что ответ Praveen является наиболее правильным, но если вы все еще нужно сделать это с JS, я предлагаю этот путь (проверьте состояние флажка перед выполнением действия):

$('input.checkboxClass').on('click', function() { 
    if($(this).is(':checked')){ 
    $(this).parent().parent().find('.checkboxClass').prop('checked', false); 
    $(this).prop('checked', true) 
    } 
    else { 
    $(this).prop('checked', false) 
    } 
}); 

JSFiddle

+0

ну, может быть, посмотрите на мое решение для javascript. это немного короче :) –