【问题标题】:display an alert message if an option is selected while selecting other option如果在选择其他选项时选择了一个选项,则显示警报消息
【发布时间】:2021-08-26 02:02:00
【问题描述】:

选择 jQuery 选项时显示警告消息

如果选择了任何端口(rate == "MAC"),则在其他端口中选择 MAX 时应显示警报消息
如果选择了任何端口(rate == "MAX"),则在其他端口中选择 MAC 时应显示警报消息 如果选择 MAC,则您不能在任何其他选择框中选择 MAX,反之亦然。应显示警告消息

<table>
    <thead>
    <tr>
      <th>Port</th>
      <th>Rate</th>
    </tr>
    </thead>
    <tbody>
    <tr>
      <td class="port">1</td>
      <td>
        <select class= rate>
          <option value=""></option>
          <option value="1">MAC</option>
          <option value="2">MAX</option>
          <option value="3">MIN</option>
        </select>
      </td>
    </tr>
    <tr>
      <td class="port">2</td>
      <td>
        <select class= rate>
          <option value=""></option>
          <option value="1">MAC</option>
          <option value="2">MAX</option>
          <option value="3">MIN</option>
        </select>
      </td>
    </tr>
    <tr>
      <td class="port">3</td>
      <td>
        <select class= rate>
          <option value=""></option>
          <option value="1">MAC</option>
          <option value="2">MAX</option>
          <option value="3">MIN</option>
        </select>
      </td>
    </tr>
    </tbody>
    </table>

$(document).ready(function() {
$("select.rate").change(function() {
    var rate = $(this).find("option:selected").text();
    var this_ = $(this)
    $("select.rate").not(this).each(function() {
        var values = $(this).find("option:selected").text();
        if (rate == 'MAC' && values == 'MAX') {
            alert("Since you have selected MAC, you can't select MAX");
            this_.val("") 
            return false; 
        }
    })

});

});

【问题讨论】:

    标签: javascript jquery node.js reactjs jquery-ui


    【解决方案1】:

    您可以.each 循环遍历所有选择框并检查选项文本是否相同,这取决于显示您的消息并重置该选择框。

    演示代码

    $(document).ready(function() {
      $("select.rate").change(function() {
        var rate = $(this).find("option:selected").text(); //get option text
        var this_ = $(this)
        //loop through other slects but not the one where change has occur
        $("select.rate").not(this).each(function() {
          var values = $(this).find("option:selected").text();
          //compare... 
          if (rate == 'MAC' && values == 'MAX') {
            alert("Since you have selected MAX, you can't select MAC");
            this_.val("") //reset
            return false; //break through loop
          }
          if (rate == 'MAX' && values == 'MAC') {
            alert("Since you have selected MAC, you can't select MAX")
            this_.val("")
            return false;
    
          }
        })
    
      });
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <table>
      <thead>
        <tr>
          <th>Port</th>
          <th>Rate</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td class="port">1</td>
          <td>
            <select class="rate">
              <option value=""></option>
              <option value="1">MAC</option>
              <option value="2">MAX</option>
              <option value="3">MIN</option>
            </select>
          </td>
        </tr>
        <tr>
          <td class="port">2</td>
          <td>
            <select class="rate">
              <option value=""></option>
              <option value="1">MAC</option>
              <option value="2">MAX</option>
              <option value="3">MIN</option>
            </select>
          </td>
        </tr>
        <tr>
          <td class="port">3</td>
          <td>
            <select class="rate">
              <option value=""></option>
              <option value="1">MAC</option>
              <option value="2">MAX</option>
              <option value="3">MIN</option>
            </select>
          </td>
        </tr>
      </tbody>
    </table>

    【讨论】:

    • if(rate == 'MAC' && value == 'MAX') then alert ("Since you have selected MAC, you can't select MAX") } 这样的事情?你能帮我解决这个问题吗?谢谢。
    • 为什么你又改了问题?
    • 很抱歉,最初的问题和我问的一样。也许我认为这个问题有点误导,这就是我编辑它的原因。我想在第一个框选择 MAC 时显示警报消息,如果尝试在其他选择框中选择 MAX,则显示警报。
    • 这就是我想要的。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    相关资源
    最近更新 更多