クリックされたときに HTML フォームの [送信] ボタンを無効にし、そのボタンのテキスト値を変更する最良の方法は何ですか?
6 に答える
誰かが Javascript の onclick イベントを推奨しましたが、代わりにonsubmitを使用することをお勧めします。これはボタンではなくフォーム自体にあり、ボタンを無効にする実際のイベント (送信) と、送信をトリガーする可能性のあるその他のイベントが含まれます。
document.getElementById('FormId').addEventListener('submit',function(){
var button = document.getElementById('buttonId');
button.innerText = 'Something new!';
button.disabled = true;
});
あなたが探していた追加の変更を含めるように私の答えを編集しました(ボタンのテキストも無効になっています)。
もう一度編集: スーパー クロス ブラウザーになりましょう!
var form = document.getElementById('FormId');
function submitForm(){
var button = document.getElementById('ButtonId');
button.innerText = 'Something new!';
button.disabled = true;
}
if(form.addEventListener){
form.addEventListener('submit',submitForm,false);
} else {
form.attachEvent('onsubmit',submitForm);
}
これは、IE9 より前のバージョンの IE を対象としています。明らかに、複数のフォームがある場合は、これをもう少し再利用可能にしようとしますが、これが一般的な要点です。
これを実現する最善の方法は、JQuery を使用することです。
フォーム送信ボタンに id="submitButton" があるとします。したがって、このスクリプトをページ ヘッドに追加し、ダウンロードした JQuery および JQuery-UI スクリプトを配置した場所を参照してください。
<script type="text/javascript" src="Scripts/jquery-2.0.3.js"></script>
<script type="text/javascript" src="Scripts/jquery-ui-1.10.3.js"></script>
<script>
function submitButton_OnClick() {
$("#submitButton").text("New Text");
$("#submitButton").attr("disabled", "disabled");
}
$(document).ready(function() {
$("#submitButton").click(submitButton_OnClick);
});
</script>
そしてこれをあなたのhtmlに
<button id="submitButton">test</button>
動作確認!
onclick 属性を使用して、disabled 属性を設定できます。フォームの送信が完了したときにボタンを再度有効にする方法については説明しないことに注意してください。
<button type="submit" onclick="this.setAttribute('disabled', 'disabled');">Submit</button>
このフィドルでここのライブ例を参照してください。
http://jsfiddle.net/yinkadet/DPJGw/
これが役立つことを願っています
クリックイベントを使用JavaScript
して設定する必要があります。たとえば、次のようにする必要があります。
HTML:
input type="button" value="value" id="1" onClick="OnClick(this.id)"/>
JavaScript:
function OnClick(id)
{
//some stuff...
}
またjQuery
、送信時に使用してキャッチすることもできます。次に例を示します。
$("form").on('submit',function(event)
{
event.preventDefault();
//some stuff...
}