How to prevent views from loading the results upfront I have views block with exposed filters and ajax enabled which was rendered in home page, the problem is when the block is loaded with exposed form views is loading the results too. However I want the results needs to be shown only when the user clicks on the submit button.

If I enable input required, this will work, but the client doesn't want this.
Here is the way to solve your issue:


Add Contextual filter of "Global: Null" type
In "When the filter value is NOT available" section check "Provide default value" and specify "Fixed value" and "all". Notice! If view still display results - then try select "Raw value from URL" here.
In "When the filter value IS available or a default is provided" section check "Specify validation criteria" and select "PHP code"
Specify this code

if (count($view->exposed_input)) { 
  return TRUE; 
}
In "Action to take if filter value does not validate" select "Display all results for the specified field" value
Don't forget to add any "No results behavior"!




Now results will be shown ONLY if filters are sent. View will be empty on       first display.