Since you are on CRM 2015, you can use Business Rule to Lock/Unlock your Fields.
Business Rules only run in onload and onchange (by user) event by default.
So if the value changed by another business rule it is possible not to trigger that.
You read this one:
Business rules are intended to address common actions. Compared to what a developer can do by using form scripts, business rules have limitations. However, business rules are not intended to replace form scripts.
Here are a few limitations to using business rules:
So that if you only have few validation and not complex it's very recommended using Business Rules because very easy but if very complex and you need to hide another component other than just a field then definitely Business Rules is not your choice.
Business Rules have limited actions which can be performed. Also they can only be triggered on the OnLoad, OnSave event of the form and OnChange event of the field which limits the usage.
If you want to know about Business Rules you may wish to read this fantastic article
Hope that helps
For anything other than the above mentioned scenario,
var control = Xrm.Page.ui.controls.get("fieldname");
if (control != null)