Вы можете сделать это, создав новый элемент form
, наведя его на href
и вызвав .submit()
.
<a class="postlink" href="test.php?name=test">Click</a>
<script type="text/javascript">
$('.postlink').click(function() {
var form= document.createElement('form');
form.method= 'post';
form.action= this.protocol+'//'+this.hostname+this.pathname;
$.each(this.search.slice(1).split(/[&;]/g), function() {
var ix= this.indexOf('=');
if (ix===-1) return;
var input= document.createElement('input');
input.type= 'hidden';
input.name= decodeURIComponent(this.slice(0, ix));
input.value= decodeURIComponent(this.slice(ix+1));
form.appendChild(input);
});
document.body.appendChild(form);
form.submit();
return false;
});
</script>
Или вместо этого вы можете просто сделать запрос AJAX и reload()
страницу позже, если хотите.
Однако я не уверен, почему вы хотите это сделать. Какая польза от ссылки, которую обычно размещают, кроме случаев, когда это не так? (Не только когда JS отключен / недоступен или когда это поисковая система, но и когда пользователь щелкает среднюю ссылку или пытается щелкнуть ее правой кнопкой мыши или добавить в закладки или что-то еще.)
Если все, что вам нужно, это что-то, что ведет себя как кнопка для отправки формы POST, лучше на самом деле использовать реальную форму и кнопку отправки, а затем использовать CSS для изменения ее стиля, чтобы она выглядела как ссылка, если вы этого хотите похож.