澄清暂时禁用提交按钮数秒,然后重新启用它
Clarification on temporarily disabling a submit button for a number seconds, then re-enable it?
这与另一个问题类似,但是表单不会提交。
基本上我想在这里实现的是,一旦用户点击"提交"btn, btn被禁用,直到页面被重定向,以避免用户多次点击提交btn。
用户被重定向到的页面将不显示表单中的信息。在我引入disable和enable函数之前,这个功能是正确的。
提供的代码确实禁用了btn,甚至将文本更改为"提交",但没有重定向到摘要页面,甚至当我通过选项卡导航到摘要页面时,信息也不在那里。任何帮助都是非常感激的……
代码形式 ........
<div class="portlet-body form">
<!-- BEGIN FORM-->
@using (Html.BeginForm("RequestAppointment", "Appointment", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", id= "apptReqForm" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(false, string.Empty, new { @class = "alert alert-error" })
<div class="control-group">
<label class="control-label">Healthcare Professional</label>
<div class="controls">
@Html.DropDownListFor(m => m.RequestedUserID, Model.Hcps, string.Empty)
</div>
</div>
<div class="control-group">
<label class="control-label">@Html.LabelFor(m => m.RequestedDateTime)</label>
<div class="controls">
<div class="input-append" id="ui_date_picker_trigger">
@Html.EditorFor(m => m.RequestedDateTime)
<span class="add-on"><i class="icon-calendar"></i></span>
</div>
</div>
</div>
<div class="control-group">
<label class="control-label">@Html.LabelFor(m => m.SelectedTime, "Time")</label>
<div class="controls">
<div id="timeSlotID" data-request-url="@Url.Action("LoadTimeslots")">
<select id="SelectedTime" name="SelectedTime"></select>
</div>
</div>
</div>
<div class="control-group">
<label class="control-label">@Html.LabelFor(m => m.AdditionalNotes)</label>
<div class="controls">
@Html.TextAreaFor(m => m.AdditionalNotes, new { @class = "span6 m-wrap", rows = 3 })
<span class="help-block m-wrap">In the event the selected time you have chosen is not available, please state above if your booking time is flexible.</span>
</div>
</div>
<div class="form-actions">
<button type="submit" class= "btn blue" id="submit" onclick="disable();"><i class="icon-ok"></i>Submit</button>
<button type="button" class="btn" onclick="location.href='RequestedAppointments'">Cancel</button>
</div>
}
</div>
<div class="form-actions">
<button type="submit" class= "btn blue" id="submit" onclick="disable();"><i class="icon-ok"></i>Submit</button>
<script>
function disable() {
x = document.getElementById("submit");
x.disabled = true;
x.textContent = "Submitting...";
document.getElementById("apptReqForm").submit();
setTimeout(enable, 5000);
}
function enable() {
x = document.getElementById("submit");
x.disabled = false;
x.textContent = " Submit";
}
</script>
您需要更改脚本以执行以下操作:
function disable() {
x = document.getElementById("submit");
x.form.submit();
x.disabled = true;
x.textContent = "Submitting...";
setTimeout(enable, 5000);
}
function enable() {
x = document.getElementById("submit");
x.disabled = false;
x.textContent = " Submit";
}
然而,禁用按钮可能会导致回发失败。
试试这个解决方案(它使用jQuery)点击一次后禁用按钮
你相信吗?
将按钮的id从"submit"更改为其他任何东西,因为这会混淆Visual Studio
id="submitreq"
,然后将以下内容添加到submitHandler函数中。
var submitButton = document.getElementById("submitreq");
submitButton.disabled = true;
submitButton.textContent = "Submitting...";
form.submit();
相关文章:
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- javascript:发送带有音频文件的POST,然后重定向到新页面
- 使用Jquery收集数组中的行ID,然后为新表查询这些值
- 更改音频速度,然后另存为新文件
- 广告拦截处于活动状态,然后不要打开超链接到新标签
- 附加链接已禁用,然后启用它
- 在RadWindow中加载新页面,然后从加载的窗体中关闭窗口
- 复制第一个属性's值,然后使用第一个属性的值创建新属性
- 禁用.click(),然后重新启用它
- 使用JavaScript,我可以上传一个word文件并使用.replaces然后另存为新文档吗
- 在表中创建带有输入的新行,然后单击保存该输入的值
- 一次选中4个复选框,然后将页面重定向到新页面
- 淡出,然后直接进入新页面
- 如何在新窗口中提交表单,然后重定向父页面
- 从文本框中附加url,然后使用javascript打开新窗口
- 用JavaScript打开一个新窗口,然后关闭前一个窗口
- Javascript表单提交打开新窗口选项卡,然后重定向父页面
- 等到所有脚本都完成,然后再启用按钮
- Javascript:需要帮助验证表单的两个方面,然后启用“提交”按钮
- Javascript:检查window.fullScreen是否为假,然后在新窗口中全屏打开url