仅当客户端验证通过时启动数据加载文本
Bootstrap data-loading-text ONLY if client-side validation passes
我有一个带有两个数据字段的表单。每个都有一个快速的客户端验证检查。然后有一个提交按钮:
@using (Html.BeginForm("ImportApi", "EveApi", FormMethod.Post, new { id = "register-form" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<ol>
<li>
@Html.LabelFor(m => m.KeyId)
@Html.TextBoxFor(m => m.KeyId)
@Html.ValidationMessageFor(m => m.KeyId)
</li>
<li>
@Html.LabelFor(m => m.vCode)
@Html.TextBoxFor(m => m.vCode)
@Html.ValidationMessageFor(m => m.vCode)
</li>
</ol>
<input type="submit" id="register-btn" value="Register" data-loading-text="Loading..." />
}
我目前有:
$('#register-form').submit(function () {
$('#register-btn').button('loading');
return true;
});
它将按钮更改为在提交表单时加载文本。然而,即使客户端验证失败,它也会这样做,导致它无限期地保持在"加载"状态,因为页面没有重新加载。
我正在寻找一种方法,让它只在表单实际提交到服务器并保证刷新页面时调用$('#register-btn').button('loading');
。
在设置文本之前调用valid()
方法怎么样?
类似于:
$('#register-form').submit(function () {
if($(this).valid()) {
$('#register-btn').button('loading');
return true;
}
});
您可以检查表单是否使用valid()
进行了验证。如果表格有效,您可以更改文本。
var form = $('#formId');
form.validate();
form.find('[type="submit"]').on('click', function(e){
e.preventDefault();
if ( form.valid() ) {
form.find('[type="submit"]').button('loading');
}
});
相关文章:
- 当我在重新启动cordova应用程序后尝试添加更多数据时,lokijs会丢失数据库和收集中的数据
- 在 Metro 风格应用中启动时加载数据
- 如何启动WebRTC数据通道
- PhoneRTC:启动时将数据从Java发送到Javascript
- 如何暂停和重新启动jquery数据表插件
- $.post.done回调未启动,但数据已发布到服务器
- 保存节点.js发布数据以显示自 Web 应用程序启动以来添加的所有记录
- Upstart说我的脚本正在运行,但API在我重新启动进程之前不返回数据
- AngularJS在应用程序启动时加载数据
- 启动数据切换选项卡激活启动库
- 如何停止数据表实例已启动的所有当前正在进行的 Ajax 查询
- Microsoft Edge未启动HTML5音频元数据
- Jquery幻灯片中默认显示的数据在启动时切换
- JavaScript:调用已启动类(数据包处理程序)的变量函数
- 指令's的代码在我得到数据之前就启动了
- 仅当客户端验证通过时启动数据加载文本
- SignalR调用方法:必须先启动连接,然后才能发送数据
- 如何启动客户端数据的文件下载并指定其文件名?
- 启动两个脚本的正确方法是什么:一个加载数据,另一个操作样式
- 启动数据切换下拉由单选按钮激活