2016-10-10 2 views
1

私は私が使用して箱の中に挿入することができますタグの量に制限を設定しようとしました:制限に達するとタグをアレイに追加するのを止めるには?

tagLimit: 2, 

これはあなたが箱の中に2つ以上の入力を停止しますが、それはまだ「sampleTags」に追加しますアレイ。限界に達すると誰もが配列への追加を防ぐ方法を知っていますか?

JSFiddle:http://jsfiddle.net/uVxXg/137/

答えて

1

tagitによって提供されるafterTagAddedイベントを使用して、彼はそこの配列に値する。あなたのコードは、タグのみが実際に追加されたときに実行されます。この方法:

あなたのコード

// When the user clicks submit 
    $('form').submit(function(e) { 
    var inp = $('#tagInput').val(); 
    $('#tagInput').val(''); 
    $('#tags').tagit('createTag', inp); 
    sampleTags.push(inp); 
    e.preventDefault(); 
    }); 

と行削除「sampleTags.push(INP)を;」

は(afterTagAddedイベントを参照してください)tagit関数に次のコードを追加します。

// When the user clicks submit 
    $('#tags').tagit({ 
    availableTags: sampleTags, 
    tagLimit: 2, 
    afterTagRemoved: function(evt, ui) { 
     console.log(ui.tagLabel) 
     for(var i = 0; i < sampleTags.length; i++) { 
     if (sampleTags[i] == ui.tagLabel) { 
      sampleTags.splice(i, 1); 
     } 
     } 
    }, 
    afterTagAdded: function(evt, data){ 
     sampleTags.push(data.tagLabel); 
    } 
    }); 

はここで働くの例を参照してください:http://jsfiddle.net/uVxXg/142/

UPDATE:

をコメントに答えるために。 tagLimitに達したときに「onTagLimitExceeded」を使用してフィードバックを与えます。ここでは例の作業:http://jsfiddle.net/uVxXg/144/

afterTagAdded: function(evt, data){ 
     sampleTags.push(data.tagLabel); 
    }, 
    onTagLimitExceeded: function(evt, data){ 
     alert('Tag limit reached!'); 
    } 

をあなたがここにタグ-それのgithubのページ上のすべてのイベントのリストを見つけることができます:https://github.com/aehlke/tag-it/blob/master/README.markdown

+0

を限度に達したら、あなたの答えをいただき、ありがとうございます。どのようにして最大限のメッセージを表示しますか?これは同じ場所に行きますか? – Garrett

+1

3番目のタグを追加してもコードは実行されません。しかし、この場合には他のイベントがあります。更新された回答をご覧ください。 – TheNightmare

1

ご提出関数ウィッヒはsampleTagsの長さが可変の

$('form').submit(function(e) { 
    if(sampleTags.length < 2){ 
     var inp = $('#tagInput').val(); 
     $('#tagInput').val(''); 
     $('#tags').tagit('createTag', inp); 
     sampleTags.push(inp); 
    } 
    e.preventDefault(); 
    }); 

アイブ氏は、私はこのことを願って、あなたのフィドル(http://jsfiddle.net/uVxXg/139/

を更新チェックする場合は、単に追加することができますあなたのために働く:)

関連する問題