У меня есть требование, в котором текстовое поле должно быть редактируемым или отображаемым, когда установлен флажок, как я могу это сделать?Отобразить текстовое поле после того, как флажок установлен в visualforce.
ответ
Вот строго Visualforce пример кода, который будет работать, а также:
<apex:pageBlock id="theBlock">
<apex:inputCheckbox value="{!theSObject.CheckBox__c}">
<apex:actionSupport event="onchange" rerender="theBlock"/>
</apex:inputCheckbox>
<apex:inputText value="{!theSObject.TextField__c}" disabled="false" rendered="{!(theSObject.CheckBox__c == true)}"/>
<apex:inputText value="{!theSObject.TextField__c}" disabled="true" rendered="{!(theSObject.CheckBox__c != true)}"/>
<!-- Or to simply have a field that appears only when the box is checked -->
<apex:inputText value="{!theSObject.TextField__c}" rendered="{!(theSObject.CheckBox__c == true)}"/>
</apex:pageBlock>
В дополнение к этому, вы можете добавить действие в поддержку действий, если вы хотите, чтобы сделать дальнейшую обработку в Apex, как это:
<apex:actionSupport event="onchange" action="{!myMethod}" rerender="theBlock"/>
Надежда, что помогает
Вы можете использовать javascript для переключения отключенного атрибута элемента ввода текста. Ниже приведен пример страницы, показывающей, как, обратите внимание, здесь есть несколько странностей.
Во-первых, если отключить поле первоначально используя disabled="true"
на <apex:inputText>
тогда, даже если вы включите его, значения, введенные будет не быть отправлены обратно в контроллер, следовательно, отключение поля на нагрузке с помощью JavaScript. Я считаю, что это должно предотвратить любую возможность обновления значения поля, когда разработчик указал, что он должен быть отключен.
Вторая особенность заключается в том, что даже если вы установили element.disabled
в «disabeld», чтобы отключить элемент, чтобы проверить, отключено ли оно, вы должны рассматривать его как логическое значение!
<apex:page standardController="Contact">
<apex:form >
<script type="text/javascript">
function ToggleInput(theId)
{
var e = document.getElementById(theId);
if(e != null)
{
e.disabled = (e.disabled ? false : "disabled");
}
}
window.onload = function() { document.getElementById('{!$Component.textInput}').disabled = "disabled"; }
</script>
<apex:inputCheckbox onchange="ToggleInput('{!$Component.textInput}');" value="{!Contact.Some_Checkbox__c}"/>
<apex:inputText id="textInput" value="{!Contact.Some_Text_Field__c}"/>
<apex:commandButton action="{!Save}" value="Update"/>
</apex:form>
</apex:page>
Чтобы сделать все это без JavaScript, я полагаю, вы бы установить инвалидов атрибут <apex:inputText>
«s на основе значения поля CheckBox, а затем использовать тег <apex:actionSupport>
огонь действие при изменении флажок и укажите идентификатор <apex:inputText>
в атрибуте rerender
. Вам также придется обернуть его в <apex:actionRegion>
, чтобы предотвратить отправку других полей и вызывать ошибки проверки, если требуемые поля не заполняются и т. Д. Это также означает, что вам нужно ждать запроса на изменение состояния текстового поля, поэтому javascript - лучший маршрут для скорости.
- 1. После того, как флажок установлен, выберите поле для автоматического выбора
- 2. Вычеркнуто текстовое поле, если не установлен флажок
- 3. Включить текстовое поле, когда флажок установлен - php
- 4. Отключить текстовое поле, если флажок установлен.
- 5. Предупреждающее текстовое поле пуста, когда флажок установлен.
- 6. Подтвердите поле формы HTMK после того, как установлен мой флажок.
- 7. Подтвердить текстовое поле, если соответствующий флажок установлен
- 8. Сообщение Значение текстовое поле, когда установлен флажок
- 9. Отключить текстовое поле, если флажок не установлен
- 10. ASP.NET - требуется текстовое поле, если флажок установлен.
- 11. Как отключить текстовое поле, если флажок установлен с помощью jQuery?
- 12. Динамически добавлять текстовое поле в окно, когда флажок установлен.
- 13. после нажатия на флажок появится текстовое поле
- 14. Как отобразить пустое текстовое поле
- 15. Включить и отключить текстовое поле, если флажок установлен.
- 16. Проверка того, установлен ли флажок
- 17. jQuery validation - Текстовое поле требует данных, если флажок установлен.
- 18. Отключить текстовое поле, когда флажок не установлен внутри повторителя
- 19. JQuery, когда флажок не установлен скрыть текстовое поле
- 20. установить текстовое поле видимым, если «другой» установлен флажок
- 21. Включить и отключить текстовое поле, если установлен флажок
- 22. адрес доступа checkbox end activity после того, как установлен флажок
- 23. Флажок, который запускает текстовое поле в AngularJs
- 24. Элемент загрузки Windows.Forms после того, как установлен флажок Radio Button
- 25. нокаутJS флажок и текстовое поле, работающие вместе
- 26. Включить поле ввода после того, как флажок установлен в списке флажков
- 27. как подтвердить мое поле формы после того, как мой флажок установлен?
- 28. Чтобы отобразить сумму двух полей, введенных на странице visualforce, и отобразить их на странице visualforce
- 29. Обязательный флажок, содержащий текстовое поле
- 30. Как снять флажок, если щелкнуть текстовое поле
Спасибо, я думаю, что это выглядит, как это работает для меня – user1048080
события actionSupport для флажка должен быть OnClick, OnChange не надежный во всех браузерах. –
Я часто забываю, что люди все еще используют IE;) Спасибо, Джорди - хороший улов. – Adam