我有一个允许用户输入值的表单,该值应该是一个数字。我正在使用 ValidationMessageFor 来提供验证测试。我还添加了一个函数来在单击后禁用提交按钮。如果用户输入文本值然后单击“提交”,则该按钮将被禁用,并且无法再次单击该按钮。
如何在jQuery评估发生时捕获事件,以便我可以在那时重新启用按钮?
<script>
function setOneClick(buttonName) {
$('[name="' + buttonName + '"]').click(function () {
console.log("save");
var self = this;
setTimeout(function () { $(self).prop('disabled', true); });
});
}
$(document).ready(function () {
setOneClick("prevStep");
setOneClick("saveStep");
setOneClick("nextStep");
});
</script>
@Html.EditorFor(Function(m) m.Value)
@Html.ValidationMessageFor(Function(m) m.Value)
@<input type="submit" name="prevStep" value="Previous" />
@<input type="submit" name="saveStep" value="Save" />
@<input type="submit" name="nextStep" value="Next" />
@Section Scripts
@Scripts.Render("~/bundles/jqueryval")
End Section
答案 0 :(得分:0)
@using (Ajax.BeginForm("Action", "Controller",
new AjaxOptions { HttpMethod = "POST"},
new { id = "formId" }))
{
@Html.EditorFor(Function(m) m.Value)
@Html.ValidationMessageFor(Function(m) m.Value)
<input type="button" onclick="submitFormDisablebtn()"value="@Resource.Save" class="t-button" id="submitB"/>
}
<script type="text/javascript">
function submitFormDisablebtn() {
var validForm = jQuery("#formId").valid(); //if the model will be not valid the
//validation messages will be displayed.
if (validForm == true) {
jQuery("#submitB").attr("disabled", "disabled");
jQuery("#formId").submit();
}
}
</script>
希望你能理解它,这对你有所帮助。