Изменить выбранное значение раскрывающегося списка с помощью jQuery

Один метод, который я использую, - перенаправить вывод в файл ASCII с помощью командлета Out-File.

Например, я часто запускаю сценарии SQL, которые создают другой SQL-скрипт для выполнения в Oracle. При простом перенаправлении («>») вывод будет в UTF-16, который не распознается SQLPlus. Чтобы обойти это:

sqlplus -s / as sysdba "@create_sql_script.sql" |
Out-File -FilePath new_script.sql -Encoding ASCII -Force

Сгенерированный скрипт может быть выполнен с помощью другого сеанса SQLPlus без каких-либо проблем с Unicode:

sqlplus / as sysdba "@new_script.sql" |
tee new_script.log
790
задан Muthu Kumaran 8 September 2017 в 17:13
поделиться

6 ответов

документация jQuery состояния:

[jQuery.val] проверки, или выбирает , все переключатели, флажки и избранные опции, которые соответствуют множеству значений.

Это поведение находится в jQuery версии 1.2 и выше.

Вы, скорее всего, хотите это:

$("._statusDDL").val('2');
974
ответ дан javiniar.leonard 9 September 2017 в 03:13
поделиться
  • 1
    onFling() сам по себе won' t делают Вас много пользы, потому что это won' t говорят Вам, когда граница списка является " hit". уровень API 9 представил функцию onOverScrolled() для ListViews (строка 51 в моем pastebin). – Paul Lammertsma 28 February 2012 в 22:34

Просто попробуйте

$("._statusDDL").val("2");

а не

$("._statusDDL").val(2);
24
ответ дан Iswanto San 9 September 2017 в 03:13
поделиться

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

при использовании одного из методов Ajax jQuery можно указать функцию обратного вызова и затем поместить $("._statusDDL").val(2); в функцию обратного вызова.

Это было бы более надежным способом обработать проблему, так как Вы могли быть уверены, что метод выполнился, когда данные были готовы, даже если это заняло больше времени, чем 300  мс.

2
ответ дан Peter Mortensen 9 September 2017 в 03:13
поделиться
  • 1
    Это была проблема индексации. I' m использующий MSSQL 2005, и наконец найденный Настраивающим Советником по вопросам Механизма базы данных. Я добавил индекс на A.lookupB, и он ускорил вещи существенно.Спасибо за помощь! – Mats Fredriksson 3 October 2008 в 01:30

Просто примечание - я использовал селекторы с подстановочными знаками в jQuery для захвата элементов, скрытых идентификаторами клиента ASP.NET - это тоже может вам помочь:

<asp:DropDownList id="MyDropDown" runat="server" />

$("[id* = 'MyDropDown']").append("<option value='-1'>&nbsp;</option>"); //etc

Обратите внимание на подстановочный знак id * - это найдет ваш элемент, даже если его имя - "ctl00 $ ctl00 $ ContentPlaceHolder1 $ ContentPlaceHolder1 $ MyDropDown"

3
ответ дан 22 November 2019 в 21:17
поделиться

Просто для справки, вам не нужно использовать CSS-классы для этого.

Вы можете написать следующую строку кода, чтобы получить правильное имя элемента управления на клиенте:

$("#<%= statusDDL.ClientID %>").val("2");

ASP.NET правильно отобразит идентификатор элемента управления в jQuery.

32
ответ дан 22 November 2019 в 21:17
поделиться

Я изменил его так, чтобы теперь он выполняется через 300 миллисекунд с использованием setTimeout. Кажется, сейчас работает.

Я сталкивался с этим много раз при загрузке данных из вызова Ajax. Я тоже использую .NET, и требуется время, чтобы приспособиться к clientId при использовании селектора jQuery. Чтобы исправить возникшую проблему и избежать добавления свойства setTimeout , вы можете просто вставить « async: false » в вызов Ajax, и он даст DOM достаточно времени, чтобы вернуть объекты, которые вы добавляете в выборку. Небольшой пример ниже:

$.ajax({
    type: "POST",
    url: document.URL + '/PageList',
    data: "{}",
    async: false,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (response) {
        var pages = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;

        $('#locPage' + locId).find('option').remove();

        $.each(pages, function () {
            $('#locPage' + locId).append(
                $('<option></option>').val(this.PageId).html(this.Name)
            );
        });
    }
});
4
ответ дан 22 November 2019 в 21:17
поделиться
Другие вопросы по тегам:

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