@cherub-chum
You use jQuery function:
$(document).ready(function() {
and you code is running after scrips on page.
I made full test. Itβs work!
Look at the codes below.
- file: custom/modules/Tasks/metadata/editviewdefs.php
...
'templateMeta' => array (
...
'includes' = array(
0 => array(
'file' => 'modules/Tasks/valid.js',
),
),
...
),
modules/Tasks/valid.js
$(document).ready(function() {
// control change filed: "description"
$("#description").on('change', function(){
// check data in "description" for valid in filed "parent_id"
if($(this).val() !== ''){
// make sumbol "*" for field "Related to"
var required_switch = document.createElement('span');
required_switch.className = 'required';
required_switch.innerHTML = '*';
document.getElementById('parent_name').parentElement.previousElementSibling.appendChild(required_switch);
let msg = document.getElementById('parent_name').parentElement.previousElementSibling.innerHTML.split(':')[0];
// remove old record about field "parent_id"
removeFromValidate('EditView', 'parent_id');
// switch on valid and new message for field "parent_id"
addToValidate('EditView', 'parent_id', 'varchar', true, msg);
}else{
// remove sumbol "*" for field "Related to"
let msg = document.getElementById('parent_name').parentElement.previousElementSibling.innerHTML.split(':')[0];
document.getElementById('parent_name').parentElement.previousElementSibling.innerHTML = msg+':';
// remove old record about field "parent_id"
removeFromValidate('EditView', 'parent_id');
// switch off valid and new message for field "parent_id"
addToValidate('EditView', 'parent_id', 'varchar', false, msg);
}
});
});