you actually don’t need any ajax or server side action, simple see if the user has selected a parent page:
add_action( 'admin_head-post-new.php', 'publish_admin_hook_wpse_78690' );
add_action( 'admin_head-post.php', 'publish_admin_hook_wpse_78690' );
function publish_admin_hook_wpse_78690()
{
global $current_screen;
if( 'page' != $current_screen->post_type )
return;
?>
<script language="javascript" type="text/javascript">
jQuery(document).ready(function() {
jQuery('#publish').click(function()
{
var parent_id = jQuery('#parent_id').val();
if (parseInt(parent_id) > 0){
jQuery('#ajax-loading').hide();
jQuery('#publish').removeClass('button-primary-disabled');
return true;
}else{
alert("please selet your parent page");
jQuery('#ajax-loading').hide();
jQuery('#publish').removeClass('button-primary-disabled');
return false;
}
return false;
});
});
</script>
<?php
}