2017-02-13 78 views
1

請參閱my jsFiddle其中我從下拉列表創建範圍列表,然後填充輸入字段。如何檢查div中的跨度是否包含特定文本?

我想不允許用戶反覆插入相同的值(因此,如果您輸入了「伽利略伽利略」,如果您以前不刪除,則不能再次插入)。

我是想這樣的事情(後右 「VAR creaIdRimuovi」):

var contenutoAttuale = $("#contenitorePersone").text(); 
if (contenutoAttuale.indexOf(personaSelezionataId) > 0){ 
    alert("presente"); //just to check if the string is founded 
} 

或也

if ("contenutoAttuale:contains('"+personaSelezionataId+"')"){ 
    alert("presente"); 
} 

和這兩個解決方案都無法正常工作(與其他條件其一)。

我該怎麼做?我讀過包含()的方法現在已被棄用,並且我在我的項目中使用了1.11。

+0

對於它應該是記錄:'如果(contenutoAttuale.indexOf(personaSelezionataId)> = 0){ '0將是第一個字符 –

回答

2

你的第二個代碼示例沿着正確的路線,但是選擇器需要提供給一個jQuery對象,並且還需要檢查該對象的length屬性。試試這個:

if ($('#contenitorePersone').find('span:contains("' + personaSelezionata + '")').length != 0) { 
    alert('presente'); 
    return; 
} 

Updated fiddle

return聲明退出事件處理功能,從而防止新div被追加爲一個已經存在。

+0

完美,謝謝! – tina

1

這裏的邏輯是將輸入的值與已經添加到下面列表中的值進行匹配。所以,在這裏你去:

if(!($('#contenitorePersone').find('span:contains("'+personaSelezionata+'")').length)){ 

    $('#contenitorePersone').append('<div><span id="span' + personaSelezionataId + '">' + personaSelezionata + '</span> <input type="button" value="-" id=' + creaIdRimuovi + ' class="ui-button ui-corner-all ui-widget removeSpan"><br></div>'); 
    var inputList = $('#personeID').val(); 
    if ($('#personeID').val() != "") { 
     $('#personeID').val(inputList + ", " + personaSelezionataId); 
    } else $('#personeID').val(personaSelezionataId); 
} 

鏈接:https://jsfiddle.net/Ashokkumargupta/8vr9e30a/24/

乾杯,

阿肖克