Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Помогите с селектом (https://javascript.ru/forum/dom-window/69035-pomogite-s-selektom.html)

Sav2907 25.05.2017 15:19

Помогите с селектом
 
Помогите допилить код:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<button id="save">СОХРАНИТЬ</button><br>
<select id="name1">
  <option selected></option>
  <option value="F100">F100</option>
  <option value="F200">F200</option>
  <option value="F300">F300</option>
</select><br>
<select id="name2">
  <option selected></option>
  <option value="F100">F100</option>
  <option value="F200">F200</option>
  <option value="F300">F300</option>
</select><br>
<select id="name3">
  <option selected></option>
  <option value="F100">F100</option>
  <option value="F200">F200</option>
  <option value="F300">F300</option>
</select>

<script>
$('select').on('change', function(){
  var name = document.querySelectorAll("[id^='name']");
  
  var a = 0;
  for (var i = 0; i< 3; i++)
  {
    if(name[i].value == 'F200'){
    	$("#save").attr("disabled", true);
        $("#save").css({"background-color": "red"});
      }else{
        $("#save").attr("disabled", false);
        $("#save").css({"background-color": "blue"});	
      }
  }
});
</script>

рони 25.05.2017 15:52

Sav2907,
в чём проблема?

ksa 25.05.2017 15:57

Цитата:

Сообщение от Sav2907
name[i].value == 'F200'

У тебя ни в одном селекте нет опции с таким значением валуе... :no:

Sav2907 25.05.2017 16:26

Поправил код, не работает условие, если F200 хотя бы в одном селекте, то красный цвет

рони 25.05.2017 16:36

Sav2907,
строки 28 - 36
{ if(name[i].value == 'F200') a = true;}

далее попробуйте сами

ruslan_mart 25.05.2017 17:24

#save {
    background-color: blue;
}
#save:disabled {
    background-color: red;
}


var select = $('select');
var save = $('#save');

select.change(function() {
   for(var i = 0; i < select.length; i++) {
       if(select[i].value === 'F200') {
           return save.prop('disabled', true);
       }
   }
   save.prop('disabled', false);
});

рони 25.05.2017 17:52

Ruslan_xDD, :thanks:
Sav2907,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
#save {
    background-color: blue;
}
#save:disabled {
    background-color: red;
}

  </style>
 </head>

<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<button id="save" >СОХРАНИТЬ</button><br>
<select id="name1">
  <option selected></option>
  <option value="F100">F100</option>
  <option value="F200">F200</option>
  <option value="F300">F300</option>
</select><br>
<select id="name2">
  <option selected></option>
  <option value="F100">F100</option>
  <option value="F200">F200</option>
  <option value="F300">F300</option>
</select><br>
<select id="name3">
  <option selected></option>
  <option value="F100">F100</option>
  <option value="F200">F200</option>
  <option value="F300">F300</option>
</select>

<script>
$('select').on('change', function(){
  var name = document.querySelectorAll("[id^='name']");
  var a = false;
  for (var i = 0; i< 3; i++)  if(name[i].value == 'F200') {a = true; break};
  $("#save").prop("disabled", a)
  //.css({"background-color": a ? "red" : "blue"});
});
</script>



</body>
</html>

ruslan_mart 25.05.2017 18:04

Вызов принят :D

$('select').change((a, b, c) => {
   a = !1;
   b = $('[id^=name]')
   for(c of b) if(c.value == 'F200') {a = !0; break}
   $('save').prop('disabled', a);
});

рони 25.05.2017 18:08

Ruslan_xDD,
это был не вызов, а спасибо за то что напомнил про css селектор :disabled :)

Sav2907 26.05.2017 12:34

Спасибо большое


Часовой пояс GMT +3, время: 11:44.