2013-12-09 54 views
0
function limitofTags(){ 

    var tags = $('div').find('.tag').map(function(){ 
     return $(this).text(); 
    }).get(); 

    var elem = []; 
    for (var i = 0; i < tags.length; ++i){ 
     //store array elements 
     elem.push(tags[i]); 

     if(elem.length < 2){ 
      $("#tags").prop('disabled',false); 

     } 
     else{ 
      $("#tags").prop('disabled',true); 

     } 
    } 
} 

至於html,它是與按鈕的小div。當我在輸入文本框中輸入標籤時,它會被附加到div區域。當標籤大於2時,輸入文本字段將被禁用,以防止添加更多標籤。提交表單後,div顯示相同數量的標籤,但輸入文本框不會保持禁用狀態。那麼如何使輸入文本字段保持禁用,如果標籤超過2在div?在提交和計數數組元素後禁用輸入

欣賞洞察或幫助。我一直在尋找在線答案,但似乎沒有找到我需要提交後輸入文本禁用。

回答

1

你或許應該檢查長度被填充後陣,你要創建一個elem數組,它是完全一樣的tags陣列您有:

function limitofTags(){ 
    var tags = $('div').find('.tag').map(function(){ 
     return $(this).text(); 
    }).get(); 

    $("#tags").prop('disabled', tags.length >= 2); 
} 
+0

哦,我看到的。它更容易。但仍然當我添加創建頁面上的標籤,並顯示輸入禁用,提交後,在編輯頁面上,輸入不保持禁用。所以如果我再添加一個標籤,它將被禁用,它會是3個標籤,而不是2個標籤。爲什麼? – kittymeows

+0

提交後,頁面將重新加載,並且所有使用javascript設置或完成的操作都將丟失,因爲沒有狀態概念,所有操作都會在新的頁面加載時重新開始。 – adeneo

+0

我看到提交後有沒有辦法保持禁用狀態? – kittymeows