Internet Explorer не обновляет выбор после добавления новой опции [duplicate]

Строка ошибки «Ссылка на объект, не установленная на экземпляр объекта.» указывает, что вы не назначили экземпляр объекта объектной ссылке, и все же вы получаете доступ к свойствам / методам этого объекта.

например: скажем, у вас есть класс под названием myClass и он содержит одно свойство prop1.

public Class myClass
{
   public int prop1 {get;set;}
}

Теперь вы получаете доступ к этому prop1 в каком-то другом классе, как показано ниже:

public class Demo
{
     public void testMethod()
     {
        myClass ref = null;
        ref.prop1 = 1;  //This line throws error
     }
}

выше строки выдает ошибку, потому что ссылка класса myClass объявлена, но не создана, или экземпляр объекта не назначается referecne этого класса.

Чтобы исправить это, вам нужно создать экземпляр (присвоить объект ссылке на этот класс).

public class Demo
{
     public void testMethod()
     {
        myClass ref = null;
        ref = new myClass();
        ref.prop1 = 1;  
     }
}
25
задан wkm 18 August 2011 в 15:32
поделиться

3 ответа

Измените его на это, и он будет работать:

$("#theSelectId").prepend("<option value=''></option>").val('');

http://jsfiddle.net/YFu2h/1/

Кажется, что IE оценивает только атрибут selected, когда он впервые встречает select.

35
ответ дан Joseph Silber 24 August 2018 в 03:22
поделиться

Я не уверен, почему ваш код не работает (возможно, он имеет какое-то отношение к тому, что в IE, selectedIndex - только для чтения), но это работает в IE:

$("#dropdown").prepend("<option value='' selected='selected'></option>");
$("#dropdown")[0].options[0].selected = true;
9
ответ дан Mrchief 24 August 2018 в 03:22
поделиться

Попробуйте:

$("#dropdown").prepend(new Option('', '', true, true));
$("#dropdown option:first").attr("selected", "selected");

Или, если хотите:

$("#dropdown").prepend("<option value=''></option>");
$("#dropdown option:first").attr("selected", "selected");

Использование первой опции происходит немного быстрее. Пустые кавычки означают пустое значение и пустой текст, поэтому заполняйте их по мере необходимости. Вы не нуждаетесь в выбранном атрибуте в preend, который мы добавляем позже. Это как-то связано с интернет-исследователем, не признающим, что он помечен как выбранный, поскольку он только что был создан.

3
ответ дан rickyduck 24 August 2018 в 03:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: