mirror of
https://github.com/Southampton-RSG/breccia-mapper.git
synced 2026-03-03 03:17:07 +00:00
fix: hide free text fields by default
Script was missing from Organisation and Relationship forms Resolves #114
This commit is contained in:
36
people/static/js/hide_free_text.js
Normal file
36
people/static/js/hide_free_text.js
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
function hasOption(select, option) {
|
||||||
|
var exists = false;
|
||||||
|
for (var i = 0; i < select.options.length; i++) {
|
||||||
|
if (select.options[i].text.toLowerCase().startsWith(option)) return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function setFreeTextState(select, freeTextField) {
|
||||||
|
var other_selected = false;
|
||||||
|
for (var i = 0; i < select.selectedOptions.length; i++) {
|
||||||
|
if (select.selectedOptions[i].text.toLowerCase().startsWith('other')) {
|
||||||
|
other_selected = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (other_selected) {
|
||||||
|
freeTextField.show();
|
||||||
|
} else {
|
||||||
|
freeTextField.hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
$('select').each(function (index, element) {
|
||||||
|
if (hasOption(element, 'other')) {
|
||||||
|
var freeTextField = $('#' + element.id + '_free').parent();
|
||||||
|
setFreeTextState(element, freeTextField);
|
||||||
|
|
||||||
|
$('#' + element.id).on('change', function (event) {
|
||||||
|
setFreeTextState(event.target, freeTextField);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
@@ -51,3 +51,7 @@
|
|||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block extra_script %}
|
||||||
|
<script async defer src="{% static 'js/hide_free_text.js' %}"></script>
|
||||||
|
{% endblock %}
|
||||||
|
|||||||
@@ -51,42 +51,5 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block extra_script %}
|
{% block extra_script %}
|
||||||
<script>
|
<script async defer src="{% static 'js/hide_free_text.js' %}"></script>
|
||||||
function hasOption(select, option) {
|
|
||||||
var exists = false;
|
|
||||||
for (var i = 0; i < select.options.length; i++) {
|
|
||||||
if (select.options[i].text.toLowerCase().startsWith(option)) return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function setFreeTextState(select, freeTextField) {
|
|
||||||
var other_selected = false;
|
|
||||||
for (var i = 0; i < select.selectedOptions.length; i++) {
|
|
||||||
if (select.selectedOptions[i].text.toLowerCase().startsWith('other')) {
|
|
||||||
other_selected = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (other_selected) {
|
|
||||||
freeTextField.show();
|
|
||||||
} else {
|
|
||||||
freeTextField.hide();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
|
||||||
$('select').each(function(index, element) {
|
|
||||||
if (hasOption(element, 'other')) {
|
|
||||||
var freeTextField = $('#' + element.id + '_free').parent();
|
|
||||||
setFreeTextState(element, freeTextField);
|
|
||||||
|
|
||||||
$('#' + element.id).on('change', function(event) {
|
|
||||||
setFreeTextState(event.target, freeTextField);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
})
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -33,3 +33,8 @@
|
|||||||
</form>
|
</form>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block extra_script %}
|
||||||
|
{% load staticfiles %}
|
||||||
|
<script async defer src="{% static 'js/hide_free_text.js' %}"></script>
|
||||||
|
{% endblock %}
|
||||||
|
|||||||
Reference in New Issue
Block a user