According to the specs it is, and also you'll find browsers implement different default styling (e.g. not changing the cursor to pointer) when you leave out href. The most common approaches to adding dummy hrefs are
href="#" // But the event handler function must return false in order to avoid the default behaviour of jumping to the top of the page
href="javascript:void()" // has the advantage of having no annoying default behaviour