2012-04-01 42 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

你確定嗎?因爲它似乎沒有對這項工作:如果(isset($ _ POST [ 'submit1'])){ – droidus 2012-04-01 23:43:53

+0

我已經更新了我的回答,請參見上面。 – MikeAr 2012-04-02 00:44:41

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 2012-04-02 17:04:13

+0

你可以,但爲什麼? – RobG 2012-04-03 08:23:32