我需要弄清楚提交表单的方法,但不要重新加载页面,以便我的页面不会再滚动到顶部。有办法吗?
<form method="post" id="myForm">
<button type="submit">Click</button>
</form>
if(Ispost){
Do something but do not reload the page. PS this is razor page.
}
答案 0 :(得分:0)
是的,这是可能的,但它与客户端代码一样多,与服务器端部件一样多。
使用像jQuery这样的库可以简化操作,您可以$.serialize()
(https://api.jquery.com/serialize/)函数将表单中的数据转换为$.post()
(https://api.jquery.com/jquery.post/的格式然后,函数可以发送到您的WebMatrix端点。
在我的脑海中,像这样的一些JS / JQ代码可以解决这个问题:
var url = $('#myForm').attr('action');
var data = $('#myForm').serialize();
$.post(url, data, function () {
// tell the user it succeeded
}).fail(function () {
// tell the user it failed
});
以上假设您的表单具有使用您要将数据发布到的URL指定的操作,而serialize()将确保表单中的任何字段都传递到端点。
<form method="post" id="myForm" action="/my-end-point">
<input type="text" name="someval" id="someval" />
<button type="submit">Click</button>
</form>