获取最后一个选择值



i有多个选择具有多个值的选择(零,一,两个,三,四)。如果选择value1,我会检查所有选择的最后一个value1。实际代码可以完成工作。

pic1

但是,如果我选择两个 value1,则获得两个值

pic2

我需要的是仅获得value1的最后一个选择。

$(document).on("change", ".sheet2_etapa", function() {
  var valor_etapa = "";
  $(".sheet2_etapa").each(function() {
    $(this).text();
  });
  var valor_etapa = $(this).val();
  console.log("Valor de la Etapa " + valor_etapa);
  console.log("-------------------------------------");
  if (valor_etapa === "zero") {
  } else if (valor_etapa === "one") {
    $("tbody tr td select [value=one]").filter(":selected").last().css('background', 'red');
  })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="sheet2_etapa">
  <option value="zero">Select</option>
  <option value="one">value1</option>
  <option value="two">value2</option>
  <option value="three">value3</option>
  <option value="four">value4</option>
</select>

以获取最后一个选定的选项,其值等于一个您可以写:

$('.sheet2_etapa option:selected[value=one]:last')

如果您需要获得相应的选择标签,则足够链条:

.closest('select.sheet2_etapa')

摘要:

$(document).on("change", ".sheet2_etapa", function () {
    var valor_etapa = $("tbody tr td select [value=one]:selected:last").val();
    if (valor_etapa === "one") {
        $("tbody tr td select [value=one]:selected:last").closest('select').css('background', 'red');
        $("tbody tr td select option:selected").filter('[value=one]:not(:last)').closest('select')
            // deselect
            //.val('zero')
            // reset background
            .css('background', 'inherit');
    }
    $("tbody tr td select option:selected").filter(':not([value=one])').closest('select')
            // reset background
            .css('background', 'inherit');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
    <tbody>
    <tr>
        <td>
            <select class="sheet2_etapa 1">
                <option value="zero" selected>Select</option>
                <option value="one" >value1</option>
                <option value="two">value2</option>
                <option value="three">value3</option>
                <option value="four">value4</option>
            </select>
        </td>
    </tr>
    <tr>
        <td>
            <select class="sheet2_etapa 2">
                <option value="zero">Select</option>
                <option value="one" selected>value1</option>
                <option value="two">value2</option>
                <option value="three">value3</option>
                <option value="four">value4</option>
            </select>
        </td>
    </tr>
    <tr>
        <td>
            <select class="sheet2_etapa 3">
                <option value="zero">Select</option>
                <option value="one">value1</option>
                <option value="two">value2</option>
                <option value="three">value3</option>
                <option value="four">value4</option>
            </select>
        </td>
    </tr>
    </tbody>
</table>

尝试一下。这可能对您有用。

$('#sheet2_etapa').on('change',function() {
      var latest_value = $(this).closest('select').find('option')
                          .filter(':selected:last').val();
      console.log( latest_value);
      //alert(latest_value)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <select id="sheet2_etapa" class="sheet2_etapa" name="empname" multiple="multiple">
      <option value="zero">Select</option>
      <option value="one">value1</option>
      <option value="two">value2</option>
      <option value="three">value3</option>
      <option value="four">value4</option>
    </select>

最新更新