I have made two dropdown lists. When a value is selected in the first, sub-values can be selected in the second. Then it display a table with parameters and specific values.
I want to change a text color when parameter's value is greater than an other specified value (here 100 for example). I tried with a .change
and parseInt
(with radix) but something wrong. Anyone know how to do it ?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!-- First list -->
<div class="form-group">
<label for="first">First list</label>
<select id="first" class="form-control" role="listbox" onchange="filterList();">
<option value="Select level 1" selected="selected">Select...</option>
<option value="Option 1">Option 1</option>
<option value="Option 2">Option 2</option>
</select>
</div>
<!-- Second list -->
<div class="form-group">
<label for="second">Second list</label>
<select id="second" class="form-control" role="listbox" onchange="parametres();">
<option value="Select level 2" data-group="Select" selected="selected">Select...</option>
<option value="Option 1 - 1" data-group="Option 1">First list 1 - Element 1</option>
<option value="Option 1 - 2" data-group="Option 1">First list 1 - Element 2</option>
<option value="Option 2 - 1" data-group="Option 2">First list 2 - Element 1</option>
<option value="Option 2 - 2" data-group="Option 2">First list 2 - Element 2</option>
</select>
</div>
<br>
<!-- Parameter 1 -->
<div class="container" id="table_param" style="visibility: hidden;">
<table class="table table-striped">
<thead>
<tr>
<th>Parametre</th>
<th>Value</th>
<th>Measurement unit</th>
</tr>
</thead>
<tbody>
<tr>
<td>Param1</td>
<td>
<div id="param1" style="visibility: hidden;">
<value data-param="First list 1 - Element 1">130</value>
<value data-param="First list 1 - Element 2">91</value>
<value data-param="First list 2 - Element 1">114</value>
<value data-param="First list 2 - Element 2">63</value>
</div>
</td>
<td><i><h6>g/100mg</h6></i></td>
</tr>
</tbody>
</table>
</div>
<!-- Containers -->
<span id="option-container" style="visibility: hidden; position:absolute;"></span>
<span id="option-container_param1" style="visibility: hidden; position:absolute;"></span>
<script>
// Filter list
function filterList(){
var first = $("#first").find('option:selected').text(); // stores first list selected elements
$("#option-container").children().appendTo("#second"); // moves <option> contained in #option-container back to their <select>
var toMove = $("#second").children("[data-group!='"+first+"']"); // selects elements to move out
toMove.appendTo("#option-container"); // moves elements in #option-container
$("#second").removeAttr("disabled"); // enables select
};
// Parameter 1
function parametres(){
var second = $("#second").find('option:selected').text();
$("#option-container_param1").children().appendTo("#param1");
var toMove_param1 = $("#param1").children("[data-param!='"+second+"']");
toMove_param1.appendTo("#option-container_param1");
$("#param1").removeAttr("disabled");
// Color text according to the value
$("#param1").change(function(){
if(parseFloat($("#param01").val(),10) > 100){
return $("#param01").css('color', 'red');
}
})
document.getElementById("table_param").style.visibility="visible";
document.getElementById("param1").style.visibility="visible";
};
</script>