When designing a web interface the most obvious way to allow user to do something is providing him with a hyperlink:
Click <a href="/Actions/DoSomething">here</a> to do something
when the user moves the cursor over the here
word the cursor changes and their browser shows the target link somewhere near browser window bottom so that it's clear where it leads.
However the hyperlink causes a GET request when clicked and that's not always the best choice for cases where following a link causes any changes (such as making a purchase or initiating a money transfer) because the user might save the link and unintentionally reuse it later.
So a POST request might be a better choice (the server will reply with HTTP 302 Redirect if it wants the user's browser to move to another URI afterwards). This:
<form method="post" action="/Actions/DoSomething">
<div>
Click
<input
style="text-decoration:underline; background:none;border:none;
padding:0;cursor:pointer;font:inherit;"
id="someid" type="submit" value="here" />
to do something.
</div>
</form>
crafts an input
element which makes a POST request when clicked. With this styling it looks like a link - it's underlined, cursor turns into arrow when placed above the element and when it's clicked something happens.
The only obvious difference is the browser doesn't show the Actions/DoSomething
path as it did with a hyperlink.
Is there any problem with this minor difference? Will this "input as hyperlink link" be as good as ordinary hyperlink for users?