2016-12-05 51 views
1

我使用下面的代碼來禁用按鈕,如果我的textarea是空的,但它只有第一次工作,當我刷新整個頁面後,採取第一次輸入我清除textarea的,但按鈕不會禁用... 什麼是錯在我的代碼請幫助...禁用按鈕只能第一次工作,當我刷新頁面

HTML代碼

<div id='box'> 
       <form id="stat"> 
        <textarea type="text" name="status" id="status" placeholder="Anything You Want To Say...?"></textarea> 
       </form>  
       <button id='statbtn' type="submit" onclick="update()">Update</button> 
      </div> 

我使用此代碼顯示的狀態和刷新我的textarea與

function update() { 
     var x,y; 
     x=document.getElementById("stat"); 
     y=x.elements["status"].value; 
     document.getElementById("bigbox").innerHTML += "<div id='box1'>"+ y + "</div>"; 
     $('#status').val(''); 
    } 

使用此代碼禁用按鈕

$(document).ready(function(){ 
$('#statbtn').prop('disabled',true); 
$('#status').keyup(function(){ 
    $('#statbtn').prop('disabled', this.value == "" ? true : false);  
}) 

});

我對js的刷新行表示懷疑,所以我使用jquery代碼,但也沒有在隨後的所有時間禁用按鈕。

+0

你能不能也請發表您的HTML?當你說刷新,你的意思是從開始(F5)加載整個頁面? – Christos

+0

請看現在,,, –

回答

1

我認爲,像下面的代碼片段做了你在找什麼。我使用普通的JavaScript。顯然,你可以使用jQuery來做同樣的事情。但是,請記住,一個好的做法是僅使用它們來做同樣的事情。我的意思是使用普通的JavaScript - document.getElementById和其他相應的文檔方法 - 更好地抓住你的元素,而不是爲它們中的一半使用普通的JavaScript和其餘的jQuery。

// We grab the elements of our UI. 
 
var btn = document.getElementById('statbtn'); 
 
var stat = document.getElementById("status"); 
 
var bigBox = document.getElementById("bigbox") 
 

 
// The function that is called on statbtn click event. 
 
function update() { 
 
    var status = stat.value; 
 
    bigBox.innerHTML += "<div id='box1'>"+ status + "</div>"; 
 
    stat.value = ''; 
 
    btn.setAttribute('disabled','disabled'); 
 
} 
 

 
// Register the event listeners. 
 
document.addEventListener('DOMContentLoaded', function(){ 
 
    btn.setAttribute('disabled','disabled'); 
 
}); 
 

 
btn.addEventListener('click', function(){ 
 
    update(); 
 
}); 
 

 
stat.addEventListener('keyup', function(){ 
 
    var btn = document.getElementById('statbtn'); 
 
    if(this.value){ 
 
     btn.removeAttribute('disabled',''); 
 
    } else { 
 
     btn.setAttribute('disabled','disabled'); 
 
    } 
 
});
<div id='box'> 
 
    <form id="stat"> 
 
     <textarea type="text" name="status" id="status" placeholder="Anything You Want To Say...?"></textarea> 
 
    </form>  
 
    <button id='statbtn' type="submit">Update</button> 
 
</div> 
 
<div id='bigbox'> 
 
</div>

+0

,但先生,同樣的問題發生在這裏,更新按鈕被禁用,只有第一次後,它並沒有被禁用的所有時間... –

+0

@mayureshpatil該按鈕被禁用的第一次,你在文本區域鍵入內容然後按下按鈕,刪除文本區域中的所有內容,並持續刷新頁面。你不是在找什麼嗎? – Christos

+0

不,我想在每次更新我的狀態後禁用該按鈕,這意味着該按鈕應該被禁用,但是我的textarea未被填充。 –

0

這將工作:

$(document).ready(function(){ 
    $('#statbtn').prop('disabled',true); 
    // textarea is the id of your textbox. 
    $('#textarea').change(function(){ 
     if($('#textarea').val() == ""){ 
     $('#statbtn').prop('disabled',true); 
     }else{ 
     $('#statbtn').prop('disabled',false); 
     } 
    }) 
}) 
+0

nope ...!現在,即使在我填充我的文本區域後,該更新按鈕也會被全部禁用... –

+0

這是一個更改事件,所以應該在您單擊文本框之外後啓用它。 – MSH

+0

我想每次禁用我的更新按鈕,但我的textarea沒有填充,所以我怎麼做到這一點? –