2016-08-14 3 views
1

Я искал ответ, но все, что у меня получилось, не могло решить мою проблему.Проверка поля ввода радиосвязи на его значение

Я хочу checked радио input как этот

<input type="radio" name="field" value="a" /> 
<input type="radio" name="field" value="b" checked /> 
<input type="radio" name="field" value="c" /> 
<a href="javascript:;">cancel</a> 

// jQuery 
$("a").click(function(){ 
    var checked = "b"; 
    $('input').each(function(){ 
     var value = $(this).val(); 
     if(value == checked){ 
      $(this).attr('checked', true); 
     } else { 
      $(this).attr('checked', false); 
     } 
    }); 
}); 

Теперь это то, что я хочу достичь, значение по умолчанию «б», так что если пользователь нажимает «а» или «с» и хочет чтобы вернуть значение обратно к «b», не нажимая «b», и нажимает на ссылку, которую я хочу, чтобы значение «b» было проверено, и тем самым сняв отметку с других значений. Но когда я запускаю код, он просто отключает все значения. Как я могу добиться этого с помощью JQuery

+0

является то, что завернутый в «форму»? Если ya, просто используйте сброс типа ввода. https://jsfiddle.net/2okpwafw/ В противном случае вы можете использовать: https://jsfiddle.net/2okpwafw/1/ –

+1

изменить '.attr' на' .prop' see: http://stackoverflow.com/questions/426258/setting-checked-for-a-checkbox-with-jquery – winghei

+1

@Wolff, который сбросит все значения формы, если у него будет больше входных данных в форме, и я думаю, он хочет сбросить только радио-ящик –

ответ

0

Это не всегда возможно использовать тип входа сброс. Итак, вам нужно для первого:

  • сохранить в настоящее время проверяется индекс радио
  • набор проверил это радио при нажатии на ссылку:

$(function() { 
 
    $("a").data('radio-checked-index', $(':radio:checked').index(':radio')); 
 
    $("a").click(function(){ 
 
    var checkedIndex = +$("a").data('radio-checked-index'); 
 
    $(':radio:eq(' + checkedIndex + ')').prop('checked', true); 
 
    }); 
 
});
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> 
 

 
<form> 
 
    <input type="text"> 
 
    <input type="radio" name="field" value="a" /> 
 
    <input type="radio" name="field" value="b" checked /> 
 
    <input type="radio" name="field" value="c" /> 
 
    <input type="reset"> 
 
    <a href="javascript:;">cancel</a> 
 
</form>

+0

Большое спасибо @gaetanoM ... Он отлично работал;) –

2

Попробуйте это: Отредактировано

JAVASCRIPT:

$("a").click(function(){ 
    $('input[name="field"][value="b"]').attr('checked', true); 
}); 

HTML:

<input type="radio" name="field" value="a" /> 
<input type="radio" name="field" value="b" checked /> 
<input type="radio" name="field" value="c" /> 
<a href="javascript:;">cancel</a> 
+1

Я думаю, что вы пропустил там кавычку. – OldBunny2800

+0

Теперь редактировалось, спасибо mate –

+1

Lol, все еще не исправлено ... –

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