2017-01-23 6 views
2

el式を使用してリストまたは配列のすべての要素を動的に取得したい。jqueryを使ってオートコンプリートコンボボックスでEL式を使用してリストまたは配列のすべての要素を取得

私は以下のコードを使用しています。私が変数istatusを使用する場合、それは動作していません。もの以下

${claimNotificationForm.chattels[istatus].objectValue} 

..

${claimNotificationForm.chattels[0].objectValue} 
${claimNotificationForm.chattels[1].objectValue} 

ISTATUS値に基づいて、EL式が評価されるべきであるように、どのように私はここに変数を使用することができるように取り組んでいます。

以下は、これを使用しているjspコードです。

_createAutocomplete: function() { 

       var x = this.element[0].id;  //value is combobox-0 
       var status = x.substr(x.length - 1); // value is 0 which is in string 
       var istatus = parseInt(status); // converted to int 


       this.input = $("<input>") 
       .appendTo(this.wrapper) 
       .attr("title", '<fmt:message key="page.claim.personalclaimnotification.injury.select_info" />') 
       .val("${claimNotificationForm.chattels[0].objectValue}") //works fine with 0,1,2... I have to use 'istatus' here 
       .css({ 
        color: function(index, value) { 
         if (this.value == '<fmt:message key="page.claim.search.object.name" />') { 
          return "#777"; 
         } 
        }, 
        fontStyle: function(index, value) { 
         if (this.value == '<fmt:message key="page.claim.search.object.name" />') { 
          return "italic"; 
         } 
        }, 
        width: "286px" 
       }) 
       .attr("maxlength", 256) 
       .addClass("custom-combobox-input ui-widget ui-widget-content ui-state-default ui-corner-left") 
       .autocomplete({ 
        delay: 0, 
        minLength: 3, 
        source: $.proxy(this, "_source") 
       }) 
+0

です。あなたはistatus値を印刷して、それが何であるかを調べることができますか? console.log(istatus)を使用するか、または警告(istatus)。 –

+0

また、「JSTLコアライブラリの角括弧/ EL式がjqueryコード内で動作しない」という別の質問をすることもできます。そのようなもの –

+0

はい。それをします。 @Faraz –

答えて

0

[]をまったく使用する必要はありません。 foreachを実行し、if/else文を置くだけです。

<c:forEach items="${ListName}" var="emp" varStatus="myIndex"> 
<c:choose> 
    <c:when test="${myIndex.index==1}"> 
    //do something 
    </c:when> 

</c:forEach> 

編集:

要件の詳細を学んだ後、私は先に行って、自分でこれをテストしました。私の場合、どちらも絶対に問題ありません。ですから問題は、istatusがリストのサイズよりも大きいインデックスを評価しているか、わかりません。あなたが実行するとistatusが示す値を確認できますか?<c:out value="${istatus}" />

ランダムな値を変数istatusに設定すると、その値がリストのサイズの範囲内にある場合、それが出力されます。リストのサイズを指定すると、空白が表示されます。それは間違いなくただちにエラーを投げるわけではありません。

<c:set var="istatus" value="${1}" /> 
... 
<c:out value="${claimNotificationForm.chattels[istatus].objectValue}" /> //it prints something meaning it is working 
+0

どのようなインデックスから配列/コレクションから要素を取得する必要があるので、ループを使用してどのように使用することができます。 インデックスはistatus変数に存在します。何を確認するには:どこか $ {claimNotificationForm.chattels [ISTATUS] .objectValue} @faraz –

+0

@Ramhakrishnaは大丈夫、私は –

+0

@Ramhakrishnaそれに探していますあなたがしようとすることができます値は表示されていますか? –

関連する問題