我有一個要求,在選中複選框時必須使文本字段可編輯或呈現,我該如何實現?在visualforce中檢查複選框後顯示一個文本字段
7
A
回答
10
這裏有一個嚴格的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:actionSupport event="onchange" action="{!myMethod}" rerender="theBlock"/>
希望幫助
2
您可以使用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>
的disabled屬性,然後使用<apex:actionSupport>
代碼觸發一個動作時複選框的變化,並指定rerender
屬性中的<apex:inputText>
的ID。您還必須將其包裝在<apex:actionRegion>
中,以防止發送其他字段並在未填寫必填字段時導致驗證錯誤等。這也意味着您必須等待請求才能更改文本字段的狀態,所以JavaScript是速度的最佳途徑。
相關問題
- 1. Jquery:檢查複選框中的選項顯示文本框
- 2. 檢查CheckBoxList中的複選框時顯示文本框
- 3. 檢查複選框是否勾選並顯示文本跨度
- 4. 檢查一個複選框時檢查多個複選框
- 5. 檢查一個複選框後檢查另一個(TreeView)
- 6. 當複選框(未選中)時顯示另一個文本
- 7. 當在表格中檢查複選框時顯示相應的文本框
- 8. 將短文本字段顯示爲複選框
- 9. 使用複選框切換文本字段的顯示
- 10. 檢查輸入文本框中顯示的複選框值,取消選中將另一個地方
- 11. 顯示覆選標記檢查/取消選中複選框jquery
- 12. 顯示和隱藏在I檢查的複選框,另一個複選框選中和未選中狀態
- 13. 如何檢查有多少個複選框被選中並在文本框中顯示在按鈕上點擊
- 14. 如何檢查顯示模式框後的複選框?
- 15. 多個複選框值將在文本框中顯示
- 16. html-el:在Struts驗證錯誤顯示後檢查複選框
- 17. 複選框未顯示爲已檢查
- 18. 導軌顯示覆選框值檢查
- 19. 顯示覆選框爲false時檢查
- 20. 當我檢查複選框時隱藏/顯示多個輸入字段
- 21. 如何跳過一個文本框,檢查複選框的值?
- 22. 當單擊複選框時,使用複選框將字段中輸入的值顯示到另一個字段
- 23. 檢查複選框的值在按鈕單擊後顯示在列表框中
- 24. Datagrid的選定行,我想在文本框中顯示一個字段
- 25. 如何檢查複選框時顯示覆選框設置?
- 26. 複選框文本顯示在下方複選框
- 27. 根據複選框顯示一個字段
- 28. jquery顯示檢查複選框是否在關閉前檢查
- 29. 如果複選框被選中,將文本從一個字段複製到另一個字段
- 30. 根據用戶在文本字段中的輸入隱藏/顯示覆選框
謝謝,我覺得這看起來像我的作品 – user1048080
的複選框的ActionSupport的事件應該是的onclick,平變化不所有瀏覽器都可靠。 –
我經常忘記人們仍在使用IE;)謝謝Jordy--很好的接收。 – Adam