You can use ActionFunction for this. Here is sample for your reference.
Controller:
public class ActionFunctionCLS {
public Account actObj{get;set;}
PageReference prf= null;
public ActionFunctionCLS(){
actObj = new Account();
}
public pagereference Saverec(){
if(actobj.Name !=''){
insert actobj;
}
else{
ApexPages.Message myMsg = new ApexPages.Message(ApexPages.Severity.ERROR,'Error: Please Enter Name.');
ApexPages.addMessage(myMsg);
}
if(actobj.id !=null){
// Send the user to the detail page for the new account.
prf = new PageReference('/'+actobj.id);
prf.setRedirect(true);
}
return prf;
}
}
VF Page:
<apex:page controller="ActionFunctionCLS" id="pg" >
<script>
function recSave(){
var accountType = document.getElementById('pg:fm:pb:pbs:actType').value;
alert('accountType -->'+accountType);
if(accountType != 'Prospect'){
alert('You Should Select Prospect to Save the Record');
return false;
}
else{
saveAccount(); //this is the function name which calls our action function from java Script.
return true;
}
}
</script>
<apex:form id="fm">
<apex:actionfunction name="saveAccount" action="{!Saverec}" />
<apex:pageBlock id="pb">
<apex:pagemessages ></apex:pagemessages>
<apex:pageblockButtons >
<apex:commandButton value="Save" onclick="recSave();return false;"/>
</apex:pageblockButtons>
<apex:pageblockSection id="pbs">
<apex:inputField value="{!actobj.Name}" id="actName"/>
<apex:inputField value="{!actobj.type}" id="actType"/>
</apex:pageblockSection>
</apex:pageBlock>
</apex:form>
</apex:page>
Note that we are calling Saverec Action from JS using saveAccount Action Function.