2012-05-18 167 views
-3

我正在尋找JavaScript功能。這將在提交時禁用輸入的(填充的)文本字段。所以當用戶登錄後,填充文本框必須保持禁用狀態。我試過了一個代碼,但是在這裏發生的是點擊sumbit文本字段中的內容被刪除。JavaScript禁用輸入字段

<html> 
    <head> 
    <script> 
    function enableDisable(){ 
    var disable = true; 
    var arglen = arguments.length; 
    var startIndex = 0; 
    var frm = document.example1;//change appropriate form name 
    if (arglen>0){ 
    if (typeof arguments[0]=="boolean") { 
    disable=arguments[0]; 
    if (arglen>1) startIndex=1; 
    } 
    for (var i=startIndex;i<arglen;i++){ 
    obj = eval("frm."+arguments[i]); 
    if (typeof obj=="object"){ 
    if (document.layers) { 
    if (disable){ 
    obj.onfocus=new Function("this.blur()"); 
    if (obj.type=="text") obj.onchange=new Function("this.value=this.defaultValue"); 
    } 
    else { 
    obj.onfocus=new Function("return"); 
    if (obj.type=="text") obj.onchange=new Function("return"); 
    } 
    } 
    else obj.disabled=disable; 
    } 
    } 
    } 
    } 
    </script> 
    </head> 
     <body> 
     <form name="example1"> 


     Text Field: <input type="text" name="text1"> 
     <br> 
     <input type="submit" name="control1" onclick="enableDisable(this.submit,'text1','submit','select1')"> 

     </form> 
     </body> 
     </html> 

請做指導。

+0

將來,請嘗試將您的代碼與您的問題一起列入。此外,這很簡單,你可以谷歌搜索它。這兩個原因可能是爲什麼你會得到低估。 – SomeKittens

+1

從你的問題中很難判斷你真正想做什麼。另外,當你在技術問題中寫下類似「我已經試過代碼」的東西時,你應該會在你腦海裏看到一個閃爍的標誌,上面寫着「引用你試過的代碼」(就像「我得到一個錯誤」應該會觸發一個大的閃爍的標誌說「引用錯誤逐字」)。 –

回答

0

如果您不想刷新頁面,請確保您的submit函數返回false。您正在尋找的代碼是document.getElementById('insertIdOfTextFieldHere').style.readonly = "readonly";

+0

所有問題都模糊不清,但「當用戶登錄回來」聽起來像是當用戶離開並返回時他們希望禁用該字段。 –

+0

是的。我在前兩句話的基礎上回答了我的答案。我需要更多地瞭解關於登錄的中間位。 – SomeKittens

+0

我正在設計一個form.which有一個login.just像任何其他形式,它需要用戶登錄並在表單中輸入詳細信息。用戶可以註銷,即使沒有輸入所有details.I要給用戶這樣的規定當他登錄時可以輸入未輸入的詳細信息。 – user1403763