2017-03-20 2 views
0

코드가 있습니다. 아래를 참조하십시오. 사용자가 하나 이상의 선택 항목을 선택할 수있는 목록 상자와 전자 메일 주소를 입력 할 수있는 텍스트 필드가 포함 된 대화 상자입니다.대화 상자에서 사용자 입력을 시도했습니다. InputText는 읽기만 가능합니다.

전자 메일 주소를 캡처하는 값으로 viewScope 변수를 넣으면 해당 필드는 읽기 전용처럼됩니다. 값 = viewScope .....을 제거하면 테두리가 편집 가능한 것으로 필드가 표시됩니다.

필드를 편집 가능하게하고 제출을 클릭 할 때 사용할 범위 변수에 값을 저장하려면 어떻게해야합니까? 단추?

참고로 목록 상자는 정상적으로 작동합니다.


<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex" 
xmlns:xc="http://www.ibm.com/xsp/custom"> 

<xp:panel id="panelJenarkCurrentYearReportsMain"> 
    <xp:panel id="panelJenarkCurrentYearReportsInner"> 
     <xe:dialog id="dialogCurrentReports" title="Fetch Current Year Reports"> 
      <xp:div styleClass="lotusMessage lotusInfo" role="alert"> 
       <xp:listBox id="listBoxJenarkCurrentYearReports" value="#{viewScope.jenarkCurrentYearReports}" 
        multiple="true" style="height:150.0px;width:98%;margin-left:5px" 
        required="true"> 
        <xp:selectItems id="selectItems1"> 
         <xp:this.value><![CDATA[#{javascript:var db = new Array(@DbName()[0], "dbWorkflow\\reference"); 
result = @DbLookup(db, "($VSYSCTLKW)", "*ALL*ALL*ALLJenarkCurrentYearReports", "KWValues"); 
if (result && typeof result == "string") 
result = new Array(result); 
return result; 
}]]></xp:this.value> 
        </xp:selectItems> 
        <xp:this.validators> 
         <xp:validateRequired 
          message="Please Select one or more Current Year Reports!" /> 
        </xp:this.validators> 
       </xp:listBox> 
       <xp:panel> 
        <xp:label value="Send Reports To:" 
         id="labelJenarkReportsEmailTo" 
         style="width:20%;padding-left:3.0px;margin-left:3.0px"> 
        </xp:label> 
       </xp:panel> 
       <xp:panel> 
       <xp:inputText id="inputTextJenarkReportsEMailTo" 
        style="width:75%;padding-left:3.0px;margin-left:5.0px" 
        value="#{javascript:viewScope.jenarkReportEMail;}" required="true"> 
        <xp:this.validators> 
         <xp:validateRequired 
          message="Please Enter a valid email Address!"> 
         </xp:validateRequired> 
        </xp:this.validators> 
       </xp:inputText> 
       </xp:panel> 
      </xp:div> 
     </xe:dialog> 
    </xp:panel> 
</xp:panel> 
</xp:view> 

답변

2
그것은 표현 언어에 있어야한다

value="#{viewScope.jenarkReportEMail}" 

(EL)에 값 정의를 변경

. 이런 식으로 inputText 컨트롤은 viewScope 변수의 현재 값을 읽는 방법뿐만 아니라 사용자의 입력 값을 어디에 쓸지도 알려줍니다.

"#{javascript:..."으로 표현식을 시작하면 JavaScript 코드가 실행되고 viewScope.jenarkReportEMail의 현재 값이 inputText의 값으로 삽입됩니다. 문자열처럼, 쓸 수있는 변수가 아닙니다. 이것이 inputText가 쓰고 읽을 수없는 이유입니다.