По ip лучше точно не определить.
Вообще ip я думаю штука не для место-положения.
Разные базы данных показывают один и тот же ip в другие регионы, и это можно легко понять.
Например я купил ноутбук и пользовался им неделю в Москве, потом перешёл в Санкт-Петербурге.
Большинство баз данных будут показывать что я нахожусь в Москве...
Надеюсь поняли в чём суть.
На JavaScript не особо нужно делать проверку потому что большинство браузеров поддерживают HTML5.
Проверить нужно на стороне сервера, заполнены ли все обязательные поля.