In case you ever provisioned a Title field with the property Hidden=TRUE, and you need to set it to Hidden=FALSE later, you end up with this enchanting error:
Cannot change hidden attribute for this field
There are a couple of articles that suggest using PowerShell and Reflection, but if you like a pure web / JS solution, here it is:
Get the current SchemaXML for the field. In Chrome, while viewing a list, run the following line by line (the executequeryasync being async, you would need to use a callback if you wanted to run all commands as a block)
let myctx = SP.ClientContext.get_current() let field = myctx.get_web().get_lists().getByTitle('List 1').get_fields().getByInternalNameOrTitle('Title') myctx.load(field, 'SchemaXml') myctx.executeQueryAsync(()=>console.log('success'), (a,error)=>console.log('error',error))
(wait for success here, should take max 1s)
field.get_schemaXml()
(change Hidden=”FALSE” in this string and use it in the set_SchemaXml command)
field.set_schemaXml(`previous string with Hidden="FALSE" instead of TRUE`) field.update() myctx.executeQueryAsync(()=>console.log('success'), (a,error)=>console.log('error',error))
That’s it, your field is visible now