радио и выберите опцию с предупреждением

#javascript #html #jquery

#язык JavaScript #HTML #jquery

Вопрос:

как мне показать оповещение, если переключатель не выбран, сформируйте два переключателя, а затем покажите оповещение при выборе опции, если она не выбрана. но я получаю предупреждение по обоим переключателям, как это исправить

 $('#form_id').submit(function(el) {  el.preventDefault();  let r = $('input[type=radio][name=name]').val();   if(r != 'inst' ){  alert('Please select radio')  return false;  }else if(r != 'hq'){  alert('Please select radio')  return false;  }   if('0' === $('#select_id').val()){  alert('Please select option')  return false;  }else{  this.submit();  }     }) 
 lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"gt;lt;/scriptgt; lt;form id="form_id"gt;  lt;input type="radio" name="name" id="r1" value="inst"gt;  lt;input type="radio" name="name" id="r2" value="hq"gt;   lt;select id="select_id" class=""gt;  lt;option value="0"gt;--select--lt;/optiongt;  lt;option value="6"gt;Advertisementslt;/optiongt;  lt;option value="4"gt;Another reason:lt;/optiongt;  lt;/selectgt;   lt;button type="submit" class="btn btn-primary"gt;submitlt;/buttongt; lt;/formgt; 

Ответ №1:

Проблема в том, что в вашем случае 2 if утверждения, касающиеся ваших переключателей, всегда будут ложными для одного из случаев.

Так что сделай это вот так.

 let r = $('input[type=radio][name=name]:checked').length;  if (r == 0) {  alert('Please select radio')  return false; }  

ДЕМОНСТРАЦИЯ

 $('#form_id').submit(function(el) {  el.preventDefault();  let r = $('input[type=radio][name=name]:checked').length;   if (r == 0) {  alert('Please select radio')  return false;  }  if ('0' === $('#select_id').val()) {  alert('Please select option')  return false;  }  this.submit(); }) 
 lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"gt;lt;/scriptgt; lt;form id="form_id"gt;  lt;input type="radio" name="name" id="r1" value="inst"gt;  lt;input type="radio" name="name" id="r2" value="hq"gt;   lt;select id="select_id" class=""gt;  lt;option value="0"gt;--select--lt;/optiongt;  lt;option value="6"gt;Advertisementslt;/optiongt;  lt;option value="4"gt;Another reason:lt;/optiongt;  lt;/selectgt;   lt;button type="submit" class="btn btn-primary"gt;submitlt;/buttongt; lt;/formgt; 

Ответ №2:

Попробуйте это

 $('#form_id').submit(function(el) {  el.preventDefault();  let r = $(":radio:checked").val();   if(!r){  alert('Please select radio')  return false;  }   if('0' === $('#select_id').val()){  alert('Please select option')  return false;  }else{  this.submit();  }  })