Вы можете использовать метод JavaScript indexOf()
. Если возвращаемое значение больше '-1', то оно находится в строке.
Несколько комментаторов отметили, что indexOf()
возвращает ложные срабатывания. Я обновил свой ответ, чтобы исправить это, а также включил исправления орфографии. Я использую метод contains()
из этого вопроса . Конечно, это будет работать только в том случае, если ваш srcList
не содержит точек с запятой.
function contains(arr, obj) {
var i = arr.length;
while (i--) {
if (arr[i] === obj) {
return true;
}
}
return false;
}
function AddToHiddenField(source, hdnFieldId)
{
var srcList = document.getElementById(source);
var hdnFieldSubstring = document.getElementById(hdnFieldId);
var len = srcList.length;
var value = '';
for(var i = 0; i < len; i++)
{
var currentOption = srcList.options[i].text;
if (srcList.options[i] != null)
{
if (value == "")
{
value = currentOption;
}
else if(!contains(val.split(';'), currentOption))
{
value += ";" + currentOption;
}
}
}
hdnFieldSubstring.value = value;
}
На вашем месте я бы исправил орфографические ошибки в именах ваших переменных. Позже вы поблагодарите себя, если будете использовать правильное написание для всех имен переменных (если вы действительно не хотите использовать «filed» вместо «field»)