Добавление и удаление опций для поля выбора в новой или редактируемой форме - PullRequest
0 голосов
/ 02 апреля 2020

Я создаю экран, который необходимо удалить и добавить некоторые значения в поле выбора на основе того, были ли предоставлены определенные поля. Моя форма требует, чтобы определенные поля были предоставлены во время редактирования (не во время нового). Поэтому при входе на экран я удаляю некоторые опции выбора из поля «Состояние», в частности значение «Предложено». После того, как пользователь изменит другие поля, я посмотрю, все ли соответствующие поля заполнены, и я бы хотел снова добавить опцию «Предложено» в качестве выбора. Это необходимо ниже, ближе к концу кода. Строка: (хотя не работает).

            $("select[title='Status'] option").add(ProposedOption);

Вот мой код:

<script type="text/javascript">
$(document).ready(function() {
   //don't exectute any jsom until sp.js file has loaded.          
   SP.SOD.executeFunc('sp.js', 'SP.ClientContext', ChkUser);
});
function ChkUser()
{
        //var admingroup = "DMSDataManagement Owners";
        //console.log('selected='+'Admingroup='+admingroup);    
        //Lozzi.Fields.disableWithAllowance("Status",[admingroup]);
        //Lozzi.Fields.disable("Status");
        Lozzi.Fields.hide("ApprovedBy");
        Lozzi.Fields.hide("DateApproved");
        Lozzi.Fields.hide("PreviousStatus");

        var selectedValue = ($("h3:contains('Status')").closest('tr').find('select').val());
        //alert('Selected='+selectedValue);
        ProcessStatusValues(selectedValue);

        //on change of dropdown of Is this Critical we will call this
        $("h3:contains('DataDomain')").closest('tr').find('select').change(function () {
            //CheckMandatory(selectedValue);
            ProcessStatusValues(selectedValue);
        });
}
function ProcessStatusValues(selectedValue) {
        var ProposedFound = false;
        var ProposedOption;

        $("select[title='Status'] option").each(function(){
            if (selectedValue == 'In Process'){
               //console.log('value='+$(this).text());
           if(($(this).text() == 'Approved') || ($(this).text() == 'Obsolete'))
               {
               $(this).remove();
           }
               else if ($(this).text() == 'Proposed')
               {
                    console.log('found Proposed');
                   //ProposedFound = true;
                   if ($("h3:contains('DataDomain')").closest('tr').find('select').val() == '0')
                   {
                       ProposedOption = $(this);
                   $(this).remove();
                   } 
               } 
            }
            if (selectedValue == 'Proposed'){
            if(($(this).text() == 'Approved') || ($(this).text() == 'Obsolete'))
                {
               $(this).remove();
                       ProposedFound = true;
        }
            }
    })
       if (($("h3:contains('DataDomain')").closest('tr').find('select').val() != '0') && (ProposedFound == false)) {
            console.log('need to add Proposed');
            $("select[title='Status'] option").add(ProposedOption);
       }
}
</script>

Заранее спасибо.

1 Ответ

1 голос
/ 02 апреля 2020

Добавить предложенную опцию в выпадающий список выбора, например:

<script type='text/javascript'>
$( document ).ready(function() {
 $('select[title="Status"]').append(`<option value="Proposed">Proposed</option>`); 

});

</script>

Ссылка:

Добавить и удалить опции в Select, используя jQuery

...