This can be achieved in two ways :
Using Designer Workflow approach :
Please follow the the below steps :
if you have a workflow associated to this list (or just create one!)
Edit the workflow
put your cursor above the first step in your workflow
from the ribbon, in the insert group choose "Impersonation step"
place your cursor in the Impersonation step and click
on Actions from the ribbon
find and choose the "Replace List Item Permission" from the "List
Actions" section
click on the "these permissions" and replace the permissions as you desire (read-only, etc)
this way whenever the user submitted the list item and the workflow starts, it replaces their permissions they way you configured.
Using InfoPath form approach
Please follow the the below steps :
first, create a new field and call it for example "Redirect"
you have a default view for your form, where your users are filling
the form through with full write permission
create a new view call it for example "Read-Only-View" (managed
through Page Design> views)
"Ctrl+A" select everything on your default view and copy it
go to the newly created view, select all "Ctrl+A" > paste
right click a form field you wish would be read-only after form is
submitted> click on properties > navigate display tab > tick
the Read-Only check box.
repeat the above step for all fields required to be read only after
submit.
create a action rule on your submit button> action> set a field's
value. and choose the field "Redirect" you already created in the
first step, and in the Value type "Yes"
create the following "Form load" action rule, (click on data from
the ribbon> Form Load):
Condition: If Redirect field = "Yes" > choose the action "Switch
View" and choose the view you created earlier "Read-Only-View"
save and publish your form.
now whenever the user submitted the form, the next time they open their entry, they'll have the read-only view.
Reference URL :
How to disable User EDIT list option after submitting entries