この質問の続き
編集
コードを実行してもわかるように、ボタンのテキストは変更されず、onclick がクリック機能をオーバーライドしています。関数からフォーム id 属性を削除し、html タグから onclick 属性を削除すると、コードは期待どおりに機能します (実際のシナリオでは、onclick 関数はボタンではなく送信ボタンを意味します)。
編集を終了
インライン イベントが指定されたときに JQuery が click() イベントを発生させないのはタイプミスのせいだと思っていましたが、もう一度問題に遭遇しました。これが私のコードと問題のタグです
<input id="submit1" type="button" onclick="this.disabled=true; doSubmit();" value="submit">
<script>myfunction('submit1', 'working', myformID)</script>
var myfunction = function(ID , text , formID) {
if(ID) {
var element = document.getElementById(ID);
if(formID) {
var form = document.getElementById(formID);
}
if (element) {
jQuery(element).click( function() {
if(jQuery(this).attr('disabled')) {
return false;
}
jQuery(this).attr('disabled' , 'disabled');
jQuery(this).attr('value' , processingText);
onclick = (jQuery(this).attr('onclick') || jQuery(this).attr('onClick'));
if(form && !onclick) {
jQuery(form).submit();
}
jQuery(this).click();
});
}
}
};
この場合のように、doSubmitの場合にonclick属性を機能させたまま、送信ボタンを無効にする関数を作成するためにjavascriptを使用しています。フォーム ID が設定されていて、既存の onclick がない場合は、フォームを送信します。したがって、html タグに問題がある場合は、JS でそれを修正する一般的な方法が必要です。
よろしくお願いします