2016-06-13 9 views
1

ユーザーが入力フィールドとドロップダウンメニューを使用してデータをフィルタできるいくつかの機能を実装しました。Spotfire WebplayerでJavascriptの動作が異なります

ユーザはこのリストから項目を選択することができます(例:最終日または日付範囲の選択)。その後、入力フィールドに数値/日付を入力できます。スクリプトは、対応する入力フィールドを表示し、残りを非表示にするために使用されます。 編集:先週私は7.0からSpotfire 7.5にアップデートされました。 webplayer

任意のアイデアをこれが起こる理由として:今、このスクリプトは

Local

これは私がwebplayerで得るものです....いずれかのデスクトップクライアント上では動作しませんか? これは私のHTMLです:

Select Period:<span id="PeriodSelector"><SpotfireControl id="306fdd699c4346dbb7265c1d101fa6cf" /></span > 
<span id="SelectBeginDate" style ="padding-left:1em;" > Select Begin Date:<SpotfireControl id="16b0eab3d5e3497bb2ecea3b051d2b62" /></span > 
<span id="SelectEndDate" style = "padding-left:1em;"> Select End Date:<SpotfireControl id="46ac3d97e3b04af182b8b9d2462a7d27" /></span > 
<span id="SelectDate"style = "padding-left:1em;"> Select Date:<SpotfireControl id="6838924384aa4567bc3bcf9da5a74c32" /></span > 
<span id="LastXDays" style = "padding-left:1em;"> Number of Days:<SpotfireControl id="218b27e83771401dbbd75613acfd619b" /></span > 

そして、これは私のスクリプトです:

$("#306fdd699c4346dbb7265c1d101fa6cf").change(function() { 
    var valueText = $("#306fdd699c4346dbb7265c1d101fa6cf option:selected").text(); 
    if(valueText ==="Select Date"){ 
     $("#SelectDate").css('display','inline'); 
     $("#SelectBeginDate").css('display','none'); 
     $("#SelectEndDate").css('display','none'); 
     $("#LastXDays").css('display','none'); 
    } else if (valueText ==="Select Date Range"){ 
     $("#SelectDate").hide(); 
     $("#SelectBeginDate").css('display','inline'); 
     $("#SelectEndDate").css('display','inline'); 
     $("#LastXDays").css('display','none'); 
    } else if (valueText ==="Select Last … Days"){ 
     $("#SelectDate").css('display','none'); 
     $("#SelectBeginDate").css('display','none'); 
     $("#SelectEndDate").css('display','none'); 
     $("#LastXDays").css('display','inline'); 
    } else { 
     $("#SelectDate").css('display','none'); 
     $("#SelectBeginDate").css('display','none'); 
     $("#SelectEndDate").css('display','none'); 
     $("#LastXDays").css('display','none'); 
    } 
}); 

webplayerは、ドロップダウンボックスの値を取得していないようですが、私はなぜそれをするよう見当もつかないしません。

ご協力いただきありがとうございます。

答えて

2

だから、Tibcoのサポート、それに接触した後、実際には.change()関数はサポートされていないようです。

Spotfire 7.5では、プロパティコントロールは、たとえばselectタグのような標準のJavaScript入力タイプを使用して実装されていません。 7.5では、代わりに一連のdivタグを使用してコントロールが実装され、トリガーする「変更」イベントはありません。

JavaScript/JQueryを使用したコントロールの操作やイベントの追加は、変更される可能性があるためサポートされていません。 HTMLを操作するためだけにJavaSriptを使用することをお勧めします。回避策が必要な場合は、入力コントロールを作成し、JSを使用して入力コントロールをポップすることができます。

つまり、私はsetInterVal()を使って回避策を見つけました。コードは私の元の投稿と同じですが、テキストフィールドに隠れた計算値を使用して、文書プロパティの値を書き出す点が異なります。

...... 

setInterval(
function(){ 
    ........... 
    var valueText= document.getElementById("Hidden").textContent; 
    ........... 
}, 1000); 

ここで、Hiddenは、計算値を含むspan/divです。 欲しいものは

1

私はなぜあなたを伝えるためにはJavaScriptについて十分に知らないが、私のテストと例としてthis linkを使用することに基づいて、このコードは、あなたのために働く可能性があります

$("#306fdd699c4346dbb7265c1d101fa6cf").change(function() { 
    $("option:selected",this).text()=="Select Date"? 
     $("#SelectDate).fadeIn() & $("#SelectBeginDate").fadeOut() & $("#SelectEndDate").fadeOut() & $("#LastXDays").fadeOut(): 
     $("option:selected",this).text()=="Select Date Range"? 
     $("#SelectDate).fadeOut() & $("#SelectBeginDate").fadeIn() & $("#SelectEndDate").fadeIn() & $("#LastXDays").fadeOut(): 
     $("option:selected",this).text()=="Select Last … Days"? 
     $("#SelectDate).fadeOut() & $("#SelectBeginDate").fadeOut() & $("#SelectEndDate").fadeOut() & $("#LastXDays").fadeIn(): 
     $("#SelectDate).fadeOut() & $("#SelectBeginDate").fadeOut() & $("#SelectEndDate").fadeOut() & $("#LastXDays").fadeOut() 

}) 
+0

これはSpotfireのバージョン<7.5.For Spotfire 7.5に対する有効な回答です。私の答えは – k88

+0

かわいいです。私はバージョンアップを非常に信じています。 – Chelsea

関連する問題