none
Видимость полей в ниспадающем меню RRS feed

  • Вопрос

  • Добрый день. Хотелось бы сделать следующее. Есть список. В нем есть поля -> Статус, состояние. В форме изменения есть поле статус, которое изменяет пользователь. В ниспадающем списке статус несколько значений: Доработано, Повторное рассмотрение, Отказ, Доп.Требование. 

    Поле состояние задается путем изменения из другого списка. При изменением хотелось часть статусов в ниспадающем меню скрывать. Это можно как-то реализовать?

Ответы

  • Добрый день

    если там поле выбор, то можно убрать часть значений

    jQuery("select[id^='Status']").html("").html('<option value="Просроченные">Просроченные</option><option value="Выполнено">Выполнено</option>')

    где в id - InternalName поля

    в последнем блоке html перечисляем только требуемые варианты 


    мой блог Немного о SharePoint



    Модератор
  • есть смысл

    Вам нужен GUID списка, его можно посмотреть в параметрах списка


    мой блог Немного о SharePoint

    • Помечено в качестве ответа AndreySV 6 июня 2016 г. 6:38
    Модератор
  • Владимир, на тестовом списке все работает, но там форма не кастомная а стандартная. В кастомных формах похоже это решение не работает. К сожалению, в свое время удалил стандартную форму, и из-за этого много проблем приобрел.

    • Помечено в качестве ответа AndreySV 6 июня 2016 г. 6:38

Все ответы

  • Добрый день

    если там поле выбор, то можно убрать часть значений

    jQuery("select[id^='Status']").html("").html('<option value="Просроченные">Просроченные</option><option value="Выполнено">Выполнено</option>')

    где в id - InternalName поля

    в последнем блоке html перечисляем только требуемые варианты 


    мой блог Немного о SharePoint



    Модератор
  • Поле выбор и поле текст. Если в тест появляется значение определенное, то соответственное в поле выбор должны быть определенные поля. Мне в голову пришло только использование каскадных полей, но это немного не то. Не совсем понятно при каком условии в поле начинают отображаться "Просроченные" и "Выполненные"


  • правильно ли я понял

    при открытии формы нужно сделать проверку на значение текстового поля

    и в зависимости от его значение изменить поле Выбор


    мой блог Немного о SharePoint

    Модератор
  • Да, все верно.
  • можно попробовать так

    _spBodyOnLoadFunctionNames.push("WorkingWithFields");
    function WorkingWithFields() {
        var fieldValue = jQuery("input[id='ид текстового поля']").val();
    
        switch (fieldValue) {
            case "значение 1":
                jQuery("select[id^='Status']").html("").html('<option value="Просроченные">Просроченные</option><option value="Выполнено">Выполнено</option>');
                break;
            case "значение 2":
                jQuery("select[id^='Status']").html("").html('<option value="Просроченные">Просроченные</option><option value="Выполнено">Выполнено</option>');
                break;
    
        }
    
    }


    мой блог Немного о SharePoint

    Модератор
  • <script type="text/javascript" src="http://portal01/CRTest/SiteAssets/jquery/js/jquery-1.12.0.js"></script>
    <script type="text/javascript">
    _spBodyOnLoadFunctionNames.push("WorkingWithFields");
    function WorkingWithFields() {
        var fieldValue = jQuery("input[id='Text']").val();
    
        switch (fieldValue) {
            case "Тест1":
                jQuery("select[id^='Status']").html("").html('<option value="Вариант 1">Вариант 1</option><option value="Вариант 2">Вариант 2</option>');
                break;
            case "Тест2":
                jQuery("select[id^='Status']").html("").html('<option value="Вариант 2">Вариант 2</option><option value="Вариант 3">Вариант 3</option>');
                break;
    		case "Тест3":
                jQuery("select[id^='Status']").html("").html('<option value="Вариант 3">Вариант 3</option><option value="Вариант 3">Вариант 3</option>');
                break;
        }
    
    }
    </script>

    Сделал вот так, но не заработало. 

  • у меня маленькая ошибка

    попробуйте

     var fieldValue = jQuery("input[id=^'Text']").val();


    мой блог Немного о SharePoint


    Модератор
  • Тоже не помогло(... 

  • добавьте вывод в консоль что бы посмотреть что происходит
    к примеру 

    console.log(fieldValue)


    мой блог Немного о SharePoint

    Модератор
  • jquery-1.12.0.js:1502 Uncaught Error: Syntax error, unrecognized expression: input[id=^'Text']Sizzle.error @ jquery-1.12.0.js:1502Sizzle.tokenize @ jquery-1.12.0.js:2159Sizzle.select @ jquery-1.12.0.js:2580Sizzle @ jquery-1.12.0.js:903jQuery.fn.extend.find @ jquery-1.12.0.js:2826jQuery.fn.init @ jquery-1.12.0.js:2949jQuery @ jquery-1.12.0.js:75WorkingWithFields @ EditForm.aspx?ID=1&Source=http%3A%2F%2Fportal01%2FCRTest%2FLists%2FHideFields%2FAllItems.aspx&Conte…:564(anonymous function) @ VM2662:1ProcessOnLoadFunctionNames @ init.js?rev=0%2BjgcYFw8Xoj0N42kzP%2BcQ%3D%3D:1ProcessDefaultOnLoad @ init.js?rev=0%2BjgcYFw8Xoj0N42kzP%2BcQ%3D%3D:1NotifyEventAndExecuteWaitingJobs @ init.js?rev=0%2BjgcYFw8Xoj0N42kzP%2BcQ%3D%3D:1NotifyScriptLoadedAndExecuteWaitingJobs @ init.js?rev=0%2BjgcYFw8Xoj0N42kzP%2BcQ%3D%3D:1$_global_core @ core.js?rev=MHF5QO0KlAC5NQVG7m1Ttg%3D%3D:1(anonymous function) @ core.js?rev=MHF5QO0KlAC5NQVG7m1Ttg%3D%3D:1
  • попробуйте другой jQuery

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>


    мой блог Немного о SharePoint

    Модератор
  • jquery.min.js:2 Uncaught Error: Syntax error, unrecognized expression: input[id=^'Text']fb.error @ jquery.min.js:2fb.tokenize @ jquery.min.js:2fb.select @ jquery.min.js:2fb @ jquery.min.js:2m.fn.extend.find @ jquery.min.js:2m.fn.init @ jquery.min.js:2m @ jquery.min.js:2WorkingWithFields @ EditForm.aspx?ID=1&Source=http%3A%2F%2Fportal01%2FCRTest%2FLists%2FHideFields%2FAllItems.aspx&Conte…:564(anonymous function) @ VM2946:1ProcessOnLoadFunctionNames @ init.js?rev=0%2BjgcYFw8Xoj0N42kzP%2BcQ%3D%3D:1ProcessDefaultOnLoad @ init.js?rev=0%2BjgcYFw8Xoj0N42kzP%2BcQ%3D%3D:1NotifyEventAndExecuteWaitingJobs @ init.js?rev=0%2BjgcYFw8Xoj0N42kzP%2BcQ%3D%3D:1NotifyScriptLoadedAndExecuteWaitingJobs @ init.js?rev=0%2BjgcYFw8Xoj0N42kzP%2BcQ%3D%3D:1$_global_core @ core.js?rev=MHF5QO0KlAC5NQVG7m1Ttg%3D%3D:1(anonymous function) @ core.js?rev=MHF5QO0KlAC5NQVG7m1Ttg%3D%3D:1
  • Модератор
  • Добрый день, Владимир. Вывод в консоль заработал, но выбор так же не работает. jQuery мой тоже заработал, браузер перезапустил. сейчас код вот так выглядит.

    <script type="text/javascript" src="http://portal01/CRTest/SiteAssets/jquery/js/jquery-1.12.0.js"></script>
    <script type="text/javascript">
    _spBodyOnLoadFunctionNames.push("WorkingWithFields");
    function WorkingWithFields() {
        var fieldValue = jQuery("input[id^='Text']").val();
    console.log(fieldValue);
    switch (fieldValue) {
            
            case "Тест1":
                jQuery("select[id^='Выбор']").html("").html('<option value="Вариант 2">Вариант 2</option><option value="Вариант 3">Вариант 3</option>');
                break;
    		case "Тест3":
                jQuery("select[id^='Выбор']").html("").html('<option value="Вариант 3">Вариант 3</option><option value="Вариант 1">Вариант 1</option>');
                break;
        }
    }
    
    </script>

  • у Вас не будет работать

         jQuery("select[id^='Выбор']")

    тут нужно id поля

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

    это удобно:

    1. при изменении названия поля id остается и не нужно править код

    2. если изначально поле названо по русский, то его id будет выглядит - _x0412__x044b__x0431__x043e__x04, не особо читабельно.


    мой блог Немного о SharePoint

    Модератор
  • Блин:))Совсем про это то забыл, что на русском по другому поля называются)) Спасибо. Все заработало, то что нужно.
  • Блин:))Совсем про это то забыл, что на русском по другому поля называются)) Спасибо. Все заработало, то что нужно.

    думаю, хорошо бы указать решение, которое Вам помогло, чтобы другие участники форума быстро нашли ответ.


    мой блог Немного о SharePoint

    Модератор
  • Владимир, на тестовом списке все работает, но там форма не кастомная а стандартная. В кастомных формах похоже это решение не работает. К сожалению, в свое время удалил стандартную форму, и из-за этого много проблем приобрел.

    • Помечено в качестве ответа AndreySV 6 июня 2016 г. 6:38
  • Владимир, на тестовом списке все работает, но там форма не кастомная а стандартная. В кастомных формах похоже это решение не работает. К сожалению, в свое время удалил стандартную форму, и из-за этого много проблем приобрел.

    Вот посмотрите:

    Восстановление стандартной формы на примере NewForm.aspx


    мой блог Немного о SharePoint

    Модератор
  • Если не сохранилось ни одной формы стандартной, то я так понимаю бесполезно восстанавливать?
  • есть смысл

    Вам нужен GUID списка, его можно посмотреть в параметрах списка


    мой блог Немного о SharePoint

    • Помечено в качестве ответа AndreySV 6 июня 2016 г. 6:38
    Модератор
  • Владимир, спасибо вам большое. Получилось восстановить. Из тестового списка скопировал все формы дефолтные, потом вставил в них GUID списка. Теперь работает решение, которые вы подсказали, да еще и табы смог сделать правильные.