2015-04-25 75 views
-2

我的提交按鈕被禁用,但不會回到啓用狀態。怎麼了?JavaScript在鍵盤上提交啓用

HTML:

<div class="wrapper"> 
    <form method="post" action="timer.html"> 
     <p><input type="text" name="login" value="" placeholder="Username" id='userNameCheck' onkeyup="checkUserName()"></p> 
     <p class="submit"><input type="submit" name="submit" value="Login" id="mySubmit"></p> 
    </form> 
</div> 

JS:

<script> 
    document.getElementById("mySubmit").disabled = true; 
    function checkUserName() { 
     var userNames = document.getElementById("userNameCheck"); 
     if(userNames === 'andrius'){ 
      document.getElementById("mySubmit").disabled = false; 
     } 
    } 
</script> 
+0

改變你的if語句來比較輸入值:'if(userNames.value =='andrius')'我還建議讓'} else {'in您的聲明在提交按鈕更改後不會有任何改變。 – NewToJS

+0

你應該提供適當的文件記錄以及問題。這是一個非常普遍的問題,除了啓用和禁用按鈕外,這裏沒有提到任何要求。你應該寫什麼時候啓用和禁用按鈕。 –

+0

@AnkitTanna我不認爲這個問題需要很多解釋。通過閱讀javascript,我可以看到OP想要實現什麼。 '如果(userNames ==='andrius')'使得它非常明顯,那麼OP會在userNameCheck輸入值= toriri時啓用提交按鈕。 – NewToJS

回答

0

你的代碼有一些問題

<input type="text" name="login" value="" placeholder="Username" id='userNameCheck' onkeyup="checkUserName()" disabled= "disabled"> 

你的js代碼應該看起來像這

function checkUserName() { 
    var userNames = document.getElementById("userNameCheck").value; 
    alert(userNames); 
    if(userNames === 'andrius'){ 
     alert("true"); 
     document.getElementById("mySubmit").disabled = false; 
    } 
} 

你的錯誤是你沒有得到的用戶名字段值。它作爲html對象返回。此代碼可以很好地適用於您。

0

您犯了很多錯誤, 錯誤1: 您試圖在DOM加載網頁上的按鈕之前禁用該按鈕,這會引發錯誤。

document.getElementById("mySubmit").disabled = true; 

這必須保存在一個名爲onload的函數中。

錯誤2:

var userNames = document.getElementById("userNameCheck"); 

上面一行值不傳遞給變量,

完整的工作方案: 複製粘貼此:

<script type="text/javascript"> 
function onLoad() 
{ 
    document.getElementById("mySubmit").disabled = true; 
} 
function checkUserName() { 
     var userNames = document.getElementById("userNameCheck").value; 
     if(userNames === 'andrius'){ 
      document.getElementById("mySubmit").disabled = false; 
     } 
    } 
    </script> 
+0

由於jQuery在這個問題中沒有被標記,我會建議清楚地指出使用jQuery。 – NewToJS

+0

@NewToJS:是的..!很好..沒有什麼大不了的。我已經更新了答案,沒有JQUERY。我不認爲這裏的每個人都在標籤之後。據我所知,智能解決方案已被接受。 –

+0

不需要如此防守。出於某種原因,標籤存在,並且由於某種原因,jQuery可能無法提供給OP。只要您指出了jQuery的使用,我就不會在發佈jQuery解決方案時看到任何錯誤。接受答案與最明智的答案無關。這是最有用的答案,有詳細的解釋以幫助OP瞭解源代碼和原因,使其不能按預期運行。 – NewToJS

0

我已經加入您提交按鈕的禁用屬性。 disabled="disabled"我還爲您的userNames變量添加了value屬性以比較if語句中的值。正如我的評論中所建議的那樣,如果輸入從andrius更改,我已將else添加到if語句中以禁用按鈕。如果用戶鍵入andrius然後將其刪除,則您的提交按鈕將不會被禁用,因爲您的if語句已啓用它。

function checkUserName() { 
 
     var userNames = document.getElementById("userNameCheck"); 
 
     var SubBtn=document.getElementById("mySubmit"); 
 
     if(userNames.value === 'andrius'){ 
 
      SubBtn.disabled=false; 
 
     }else{ 
 
     \t SubBtn.disabled=true; 
 
     } 
 
    }
<div class="wrapper"> 
 
    <form method="post" action="timer.html"> 
 
     <p><input type="text" name="login" value="" placeholder="Username" id='userNameCheck' onkeyup="checkUserName()"/></p> 
 
     <p class="submit"><input type="submit" name="submit" value="Login" id="mySubmit" disabled="disabled"/></p> 
 
    </form> 
 
</div>

如果您有任何疑問,請留言,我會盡快回復您。

我希望這會有所幫助。快樂的編碼!

0

我發現問題我的自我,但謝謝大家的信息。 問題是: 我忘了把.value l

相關問題