Faits: Faits: A. F._ travaillait en qualité de chef d'agence et agent de réservation auprès de la société X._ SA. Le 26 février 2003, il a résilié son contrat de travail pour le 30 avril 2003. Il a présenté une demande d'indemnité de chômage auprès de la caisse de chômage de l'Association des commis de Genève (ci-après : la caisse), requérant le versement de l'indemnité journalière à partir du 1er mai 2003. Par décision du 7 juillet 2003, confirmée sur opposition le 18 février 2004, la caisse a suspendu l'assuré dans son droit aux indemnités de chômage pour une durée de 31 jours dès le 1er mai 2003, au motif qu'il avait fautivement provoqué son chômage en résiliant le contrat de travail, sans s'être préalablement assuré d'un autre emploi. Par décision du 7 juillet 2003, confirmée sur opposition le 18 février 2004, la caisse a suspendu l'assuré dans son droit aux indemnités de chômage pour une durée de 31 jours dès le 1er mai 2003, au motif qu'il avait fautivement provoqué son chômage en résiliant le contrat de travail, sans s'être préalablement assuré d'un autre emploi. B. F._ a déféré la décision sur opposition au Tribunal cantonal des assurances sociales du canton de Genève, qui l'a débouté par jugement du 13 juillet 2004. B. F._ a déféré la décision sur opposition au Tribunal cantonal des assurances sociales du canton de Genève, qui l'a débouté par jugement du 13 juillet 2004. C. F._ interjette recours de droit administratif contre ce jugement, dont il demande l'annulation, en concluant à la suppression de la suspension de son droit à l'indemnité de chômage. La caisse conclut au rejet du recours, tandis que le Secrétariat d'Etat à l'économie a renoncé à se déterminer.