首页 > 解决方案 > 如何在点击时更改提交值

问题描述

我有一个简单的表格

HTML

<form action="@Url.Action("Controler", "FES")" method="POST">
 <button name="upload" type="submit" id="upload-fes-btn-control" class="btn btn-danger">Contrôler</button>
</form>

提交时的请求时间有时可能会很长(超过30s,bc of business logic on big file...)

我想在用户单击按钮后更改按钮的值。目标是显示一个很棒的字体加载器,而不是初始文本 ( <i class="fas fa-spinner fa-pulse"></i>)。有一个jQuery片段我用来实现这个......

jQuery

$("#upload-fes-btn-control").click(function () {
    $(this).attr('value', '<i class="fas fa-spinner fa-pulse"></i>');
});

由于控制器中的此代码,我面临错误

从客户端检测到潜在危险的 Request.Form 值

控制器

if (Request.Form["upload"] != null)
{
   //Logic with ViewModel...
}

如何在不引发该错误的情况下将按钮中显示的文本从 text 更改为 fa image loader?

标签: javascriptjqueryasp.net-mvcformsfont-awesome

解决方案


使用此代码$(this).html('<i class="fa fa-spinner fa-pulse"></i>');

$("#upload-fes-btn-control").click(function (e) {
    e.preventDefault();
    $(this).html('<i class="fa fa-spinner fa-pulse"></i>');
    //example after page load
    setTimeout(function(){ 
        $("#upload-fes-btn-control").html('');
        $("#upload-fes-btn-control").html('Contrôler');
    }, 5000);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<form action="@Url.Action("Controler", "FES")" method="POST">
 <button name="upload" type="submit" id="upload-fes-btn-control" class="btn btn-danger">Contrôler</button>
</form>


推荐阅读