У меня есть два прямоугольника. Я хочу включить второй флажок для выбора, только если я нажму конкретную опцию в первом поле выбора [дубликат]

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

Взгляните на https: // posithub.org/, который демонстрирует тип номера, называемый posit (и его предшественник unum), который обещает предложить лучшую точность с меньшим количеством бит. Если мое понимание верное, оно также фиксирует проблемы в вопросе. Весьма интересный проект, человек, стоящий за ним, является математиком Dr. Джон Густафсон . Все это с открытым исходным кодом, с множеством реализаций в C / C ++, Python, Julia и C # ( https://hastlayer.com/arithmetics ).

1
задан marc_s 30 April 2016 в 07:39
поделиться

3 ответа

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

HTML:

<select id='fruit1' onchange="witness();">
    <option selected></option>
    <option value="1">Apple</option>
    <option value="2">Mango</option>
</select>

<select id='fruit2'>
    <option selected></option>
    <option value="1">Apple</option>
    <option value="2">Mango</option>
</select>

JQuery:

function witness(){
    $("#fruit2 option").each(function(){
        if($("#fruit1 option:selected").val() == $(this).val())
            $(this).attr("disabled", "disabled");
        else
            $(this).removeAttr("disabled");
    });
}

Здесь вы можете увидеть рабочий пример: https : //jsfiddle.net/mqjxL4n0/

2
ответ дан Harry 25 August 2018 в 23:51
поделиться
<select name="firstselect" id="firstselect">
   <option value="apple">Apple</option>
   <option value="orange">Orange</option>
</select>

<select name="secondselect" id="secondselect">
   <option value="apple">Apple</option>
   <option value="orange">Orange</option>
</select>

<script>
   $(document).ready(function(){
      $('#firstselect').change(function(){
         var firstselected = $(this).val();
         if(firstselected ){
             $('#secondselect option').each(function(){
                $(this).prop('disabled', false);
                if($(this).val()==firstselected )
                $(this).prop('disabled', true);
             });
         }
         else {
             $('#secondselect option').each(function(){
                $(this).prop('disabled', false);
             });
         }
      });
   });
</script>
1
ответ дан brandelizer 25 August 2018 в 23:51
поделиться

Fiddle: https://jsfiddle.net/3pfo1d1f/

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

Я также инициализировал первый элемент во втором раскрывающемся списке как отключенный (как это выбрано по умолчанию в первом выпадающем списке)

Используется jquery как вы:

HTML:

<!-- first dropdown -->
<select id="fruit1">
    <option value="1">Apple</option>
    <option value="2">Mango</option>
</select>

<br /> <br />

<!-- second dropdown -->
<select id="fruit2">
    <option value="1" disabled>Apple</option>
    <option value="2">Mango</option>
</select>

JQuery:

$('#fruit1').on( "change", function() {
    var op = $( this ).val();
    $('#fruit2 option').prop('disabled', false);
    $('#fruit2 option[value='+op+']').prop('disabled', true);
});

Это должно работать, независимо от того, сколько варианты, которые у вас есть в выпадающих меню

3
ответ дан Starscream1984 25 August 2018 в 23:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: