私のウェブページには、次のように生成されるボタンがあります。
<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 = '';
}
})
}
}
これは正常に機能していますが、問題は、フォームが読み込まれていることをエンドユーザーに示したいことです。最善の解決策は、callingElement を Web ページから単純に削除し、一時的に無効化された (特別な CSS) ボタンに置き換えることです。ボタンが戻る必要があり、その後 ajax メソッドが実行されます。
私はこれについて知っています:
$("#regTitle").html("Hello World");
しかし、それはdivの内部部分を置き換えるだけであり、ajax呼び出しが完了したときに戻ることができるように現在のマークアップを保存する必要もあります.
スパン内のテキストが一時的なボタンにも配置されるとよいでしょう。
問題は、これをできるだけ簡単に行う方法です。