2017-05-04 17 views
1

私はPrimefaces 5.2から6.1に移行しています。しかし、私はjavascriptで操作を解決するためにinputNumberにwidgetVarを使用していました。ただし、6.1バージョンではinputNumberに対してwidgetVarが機能しません。WidgetVar InputNumber Primefaces 6.1が動作しません

例:

HEAD

<h:head> 
    <title>TODO supply a title</title> 
    <meta charset="UTF-8"/> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/> 
    <h:outputScript name="jquery/jquery.js" library="primefaces" /> 
    <h:outputScript name="jquery/jquery-plugins.js" library="primefaces" /> 
    <h:outputScript name="core.js" library="primefaces" /> 
    <h:outputScript name="components.js" library="primefaces" /> 

</h:head> 
       <p:inputNumber thousandSeparator="." decimalSeparator="," widgetVar="wInput" 
         onchange="valueForInput('wInput')"/> 

    <script> 
     function valueForInput(wInput){ 
      var inputNumber = PF(wInput); 
      console.log(inputNumber.getValue()); 
     } 
    </script> 

コンソールエラー

Uncaught TypeError: Cannot read property 'getValue' of undefined 
at valueForInput (http://localhost:8084/sgwapp/:15:40) 
at HTMLInputElement.onchange (http://localhost:8084/sgwapp/:11:2197) 
at Object.trigger (http://localhost:8084/sgwapp/javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces&v=6.1:4585:27) 
at HTMLInputElement.<anonymous> (http://localhost:8084/sgwapp/javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces&v=6.1:5289:17) 
at Function.each (http://localhost:8084/sgwapp/javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces&v=6.1:384:23) 
at jQuery.fn.init.each (http://localhost:8084/sgwapp/javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces&v=6.1:136:17) 
at jQuery.fn.init.trigger (http://localhost:8084/sgwapp/javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces&v=6.1:5288:15) 
at jQuery.fn.init.jQuery.fn.(anonymous function) [as change] (http://localhost:8084/sgwapp/javax.faces.resource/jquery/jquery.js.xhtml?ln=primefaces&v=6.1:8481:9) 
at c.setValueToHiddenInput (http://localhost:8084/sgwapp/javax.faces.resource/inputnumber/inputnumber.js.xhtml?ln=primefaces&v=6.1:3:1714) 
at copyValueToHiddenInput (http://localhost:8084/sgwapp/javax.faces.resource/inputnumber/inputnumber.js.xhtml?ln=primefaces&v=6.1:3:1542) 
valueForInput @ (index):15 
onchange @ (index):11 
trigger @ jquery.js.xhtml?ln=primefaces&v=6.1:4585 
(anonymous) @ jquery.js.xhtml?ln=primefaces&v=6.1:5289 
each @ jquery.js.xhtml?ln=primefaces&v=6.1:384 
each @ jquery.js.xhtml?ln=primefaces&v=6.1:136 
trigger @ jquery.js.xhtml?ln=primefaces&v=6.1:5288 
jQuery.fn.(anonymous function) @ jquery.js.xhtml?ln=primefaces&v=6.1:8481 
setValueToHiddenInput @ inputnumber.js.xhtml?ln=primefaces&v=6.1:3 
copyValueToHiddenInput @ inputnumber.js.xhtml?ln=primefaces&v=6.1:3 
init @ inputnumber.js.xhtml?ln=primefaces&v=6.1:3 
e.(anonymous function) @ core.js.xhtml?ln=primefaces&v=6.1:5 
c @ core.js.xhtml?ln=primefaces&v=6.1:5 
createWidget @ core.js.xhtml?ln=primefaces&v=6.1:1 
cw @ core.js.xhtml?ln=primefaces&v=6.1:1 
(anonymous) @ (index):11 
fire @ jquery.js.xhtml?ln=primefaces&v=6.1:3148 
fireWith @ jquery.js.xhtml?ln=primefaces&v=6.1:3260 
ready @ jquery.js.xhtml?ln=primefaces&v=6.1:3472 
completed @ jquery.js.xhtml?ln=primefaces&v=6.1:3503 
+0

感謝。私はもっ​​と簡単に新しいコードを挿入します。 –

+0

さて、HTMLソースによると、** widgetVarは何ですか?また、問題がある場合は、github **のjsおよびjavaソースをチェックインすることもできます。ソース**は**開かれています.... – Kukeltje

答えて

2

あなたは、なぜあなたができないことがあります、あなたのonchangeリスナーは、ウィジェットの建設中にトリガされたあなたのスタックで見ることができますPF機能で見つけてください。まだ準備ができていません。

おそらく、とにかく初期値に興味を持っていないので、この呼び出しをスキップ:意図のため

function valueForInput(wInput){ 
    if (PF(wInput)) { 
     var inputNumber = PF(wInput); 
     console.log(inputNumber.getValue()); 
    } 
} 
+1

良いキャッチですが、なぜウィジェット構築で/ onchangeが呼び出されるのでしょうか?私の退行のように聞こえる。おそらくOPはinputTextまたは他のコンポーネントで確認できます – Kukeltje

+1

OPはhttps://github.com/primefaces/primefaces/issuesで問題を登録する必要があります –

+0

ありがとう!解決済み!!! –

関連する問題