我的网页上有一个按钮,生成如下:
<div class="btn2" id="btPost" onclick="$('#Delete').val('False'); ValidateFormAndAjaxSubmit('frmEditPost', this);" onmousedown="this.className='btn2_click';" onmouseout="this.className='btn2';" onmouseover="this.className='btn2_hover';" onmouseup="this.className='btn2_hover';">
<span>Posta</span>
</div>
当我有这个 javascript 时:
function ValidateFormAndAjaxSubmit(formId, callingElement) {
if (IsNotDblClick(callingElement.id)) {
var _form = $("#" + formId);
var validator = _form.validate();
var anyError = false;
anyError = !_form.valid();
if (anyError) {
window.latestClick = '';
return false; // exit if any error found
}
$.post(_form.attr("action"), _form.serialize(), function (data) {
if (data.success && data.redirectUrl.length > 0) {
window.location.href = data.redirectUrl;
}
else {
var isValid = validateResponse(_form, data);
window.latestClick = '';
}
})
}
}
这工作正常,但问题是我想向最终用户显示表单正在加载。最好的解决方案可能是简单地从网页中删除 callElement 并将其替换为临时禁用(特殊 CSS)按钮。按钮需要返回然后ajax方法完成。
我知道这一点:
$("#regTitle").html("Hello World");
但它只是替换 div 的内部部分,我还需要存储当前标记以便在 ajax 调用完成时能够返回。
如果跨度内的文本也放置在临时按钮上也会很好。
问题是我如何尽可能简单地做到这一点?