Необходимо добавить некоторые значения в раскрывающийся список в форме - - PullRequest
0 голосов
/ 16 июня 2020

У меня есть настраиваемый список разделов, в котором есть значения на основе диапазона дат. У меня есть список контактов, который будет списком людей и имеет поиск разделов в этом настраиваемом списке. Я хочу, чтобы раскрывающийся список для поиска по разделам отображал только те значения, которые находятся в пределах сегодняшней даты.

У меня есть код для удаления значений (вероятно, есть способ лучше, я прохожу по ним), тогда у меня есть код, который будет искать в списке и находить подходящие значения, которые являются «текущими».

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

<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', GetSections);
});

function GetSections()
{
  var dtToday = new Date((new Date()).getFullYear(), (new Date()).getMonth(), (new Date()).getDate() );
  // Remove all values from Section
    $("select[title='Section'] option").each(function(){
        $(this).remove();
    });
   var ctx = new SP.ClientContext.get_current();
   var list = ctx.get_web().get_lists().getByTitle('Sections');
   var camlQuery = new SP.CamlQuery();
   camlQuery.set_viewXml('<View><Query></Query></View>');
   var collListItems = list.getItems(camlQuery)
   ctx.load(collListItems);
   ctx.executeQueryAsync(
        function(){
                        var swListItms = collListItems.getEnumerator();
                        while (swListItms.moveNext())
                        {
                            var swItm = swListItms.get_current();
                            var itmSDt = swItm.get_item("BeginDate");
                            var itmEDt = swItm.get_item("EndDate");
                            var quest = swItm.get_item("Title");
                            if((dtToday >= itmSDt) && (dtToday <= itmEDt))
                            {
                                console.log("yes-"+quest);
                               $("select[title='Section'] option").prepend('<option value="" selected="selected">--select--</option>')
                            } //else {
                                //console.log("no-"+quest);
                            //}
                        }
        },
        function(sender,args){
             console.log("Request Failed."+args.get_message() + "\n" + args.get_stackTrace());
        }
    );

}
</script>

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

1 Ответ

0 голосов
/ 17 июня 2020

Измените фрагмент кода, как показано ниже:

<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', GetSections);
});

function GetSections()
{
  var dtToday = new Date((new Date()).getFullYear(), (new Date()).getMonth(), (new Date()).getDate() );
  // Remove all values from Section
    $("select[title='Section'] option").each(function(){
        $(this).remove();

    });
   var ctx = new SP.ClientContext.get_current();
   var list = ctx.get_web().get_lists().getByTitle('Sections');
   var camlQuery = new SP.CamlQuery();
   camlQuery.set_viewXml('<View><Query></Query></View>');
   var collListItems = list.getItems(camlQuery)
   ctx.load(collListItems);
   ctx.executeQueryAsync(
        function(){
                        $("select[title='Section']").prepend('<option value="" selected="selected">--select--</option>')
                        var swListItms = collListItems.getEnumerator();
                        while (swListItms.moveNext())
                        {
                            var swItm = swListItms.get_current();
                            var itmSDt = swItm.get_item("BeginDate");
                            var itmEDt = swItm.get_item("EndDate");
                            var quest = swItm.get_item("Title");

                            if((dtToday >= itmSDt) && (dtToday <= itmEDt))
                            {
                                console.log("yes-"+quest);
                               $("select[title='Section']").append("<option value='"+quest+"'>"+quest+"</option>")
                            } 

                        }
        },
        function(sender,args){
             console.log("Request Failed."+args.get_message() + "\n" + args.get_stackTrace());
        }
    );

}
</script>
<select title="Section"></select>

enter image description here

...