2012-04-01 20 views
0

ボタンのテキストを変更するだけでなく、クリック時にボタンを無効にしようとしています。 、何が起こっている無効化ボタンでフォームが無効になり、テキストが変更されます

<input type="submit" value="Register" name="submit" id="submit" onClick="javascript:replaceButtonText('submit', 'Please wait...'); document.form1.submit.disabled=true;"> 

(提出)ボタンが無効になり、テキストの変更が、フォームが何もしないで。ここに私のコードです。私は何を間違えているのですか?

答えて

1

これは動作します:名前の

<html> 
<body> 
    <form name="form1" method="post" action="myaction"> 
     <input type="text" value="text1"/> 

     <input type="submit" value="Register" name="submit" id="submit" 
      onclick="javascript: replaceButtonText('submit1', 'Please wait...'); document.form1.submit.disabled=true; return true; "> 
    </form> 

</body> 
</html> 
+0

本当にですか?これはうまくいきません: droidus

+0

私は私の答えを更新しました、上記を参照してください。 – MikeAr

1

フォームコントロールは、彼らが自分の名前を使用しているフォームの名前付きプロパティとして利用できるようになります。したがって:

document.form1.submit 

は、送信メソッドではなくボタンを参照します。

執筆:

< ... onclick="javascript:..." ...> 

は "JavaScriptは" ちょうどそれをしない、役に立たないラベルとして扱われることを意味します。フォームが送信されたときにボタンを無効にしてラベルを変更するには、

<form> 
    <input name=foo value=bar> 
    <input type="submit" onclick=" 
    this.value='Please wait...'; 
    this.disabled = true; 
    var theForm = this.form; 
    window.setTimeout(function(){theForm.submit();},1); 
"> 
</form> 

などの形式を使用し、フォームを正常に送信します。

もちろん、onclick属性の関数はコードのスラブではなく関数呼び出しでなければなりませんが、あなたはその考えを得ます。

+0

、なぜそれが機能するためのボタンのIDを持っていないのですか? – droidus

+0

できますが、なぜですか? – RobG

関連する問題