首页 > 解决方案 > 检查是否选择了收音机不做任何事情

问题描述

我有两个单选按钮,我希望当我选择一个选项以继续使用代码但我不能,因为什么都没有出现。这是整个代码

$(function() {
  $("#tratamientos").click(function() {
    let valorSelect = $("#tratSelect").val();
    let valor = $('input:radio:checked').val();
    if (valor == 'rojo') {
      if (valorSelect == 2) {
        alert('Extracción indicada es una prestación requerida.')
        $('#tratSelect').val('none')

      }
    }
  });

});

if ($("#prestRequerida").is(':checked')) {
  alert('ha seleccionado prestacion requerida')
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">


<form id="tratamientos">

  <div class="col-md-4">
    Seleccione el tipo de Prest. requerida
    <div class="form-inline">
      <!-- <input type="radio" id="prestExistente" name="colorPrestacion" value="1"> -->
      <input type="radio" id="prestExistente" name="colorPrestacion" value='rojo'>
      <div class="mr-1"></div>
      <font style="color:red"> Prestaciones existentes</font>
    </div>
    <div class="row">
      <div class="col-md-12">
        <input type="radio" id="prestRequerida" name="colorPrestacion" value='azul'>
        <font style="color:blue"> Prestaciones requeridas</font>
      </div>
    </div>
  </div>

  <select class="col-md-4" name="" id="tratSelect">
    <option value='none' selected disabled>Seleccione referencia</option>
    <option value="2">Extracción requerida</option>

  </select>
</form>

<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>

我尝试了不同的方法,但我不明白为什么另一种方法有效,而这不是

这是工作的人

$(function () {
    $("#tratamientos").click(function () {
        let valorSelect = $("#tratSelect").val();
        let valor = $("input:radio:checked").val();
        if (valor == "rojo") {
            if (valorSelect == 2) {
                alert("Extracción indicada es una prestación requerida.");
                $("#tratSelect").val("none");
            }
        }
    });
});

这些是其他的

if ($("#prestExistente").is(':checked')) {
    console.log('ha seleccionado prestacion existente')
}
       let val= $('input:radio[name=colorPrestacion]:checked').val()
   if (val=="rojo") {
       alert(' seleccion prestacion existente')
   }

单选按钮的 if 条件也不必在函数中,这就是为什么我没有将它放在另一个函数中的原因

标签: javascripthtmljqueryradio-button

解决方案


您的最后一条if语句也应该在click事件处理程序中:

$(function () {
    $("#tratamientos").click(function () {
        let valorSelect = $("#tratSelect").val();
        let valor = $('input:radio:checked').val();
        if (valor == 'rojo') {
            if (valorSelect == 2) {
                alert('Extracción indicada es una prestación requerida.')
                $('#tratSelect').val('none')

            }
        }
        //Right here VVV
        if ($("#prestRequerida").is(':checked')) {
            alert('ha seleccionado prestacion requerida')
        }
        //Right here ...
    });

});

推荐阅读