簡體   English   中英

Javascript在Spotfire Webplayer中的行為有所不同

[英]Javascript behaves differently in Spotfire Webplayer

我實現了一些功能,用戶可以使用輸入字段和下拉菜單過濾數據。

因此,用戶可以從該列表中選擇項目(例如,上次...天或選擇日期范圍),然后在輸入字段中輸入數字/日期。 然后,該腳本用於顯示相應的輸入字段並隱藏其余字段。 編輯:上周我從7.0更新到Spotfire 7.5。 現在這個腳本無法在桌面客戶端上運行....

本地

這是我在網絡播放器中得到的: Web播放器

知道為什么會這樣嗎? 這是我的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');
    }
});

似乎網絡播放器沒有檢索下拉框的值,但我不知道它為什么沒有。

非常感謝任何幫助。

因此,在與Tibco支持聯系之后,似乎確實不支持.change()函數。

在Spotfire 7.5中,不再使用標准JavaScript輸入類型(例如select標簽)實現屬性控件。 在7.5中,控件現在使用一系列div標簽來實現,而且它們沒有任何“更改”事件可以觸發。

不支持使用JavaScript / JQuery操作控件或添加事件,因為它們可能會發生變化。 建議使用JavaSript來僅操作HTML。 如果需要解決方法,可以創建輸入控件並使用JS彈出它們。

話雖這么說,我確實找到了使用setInterVal()的解決方法。 代碼與我的原始帖子完全相同 - 除了我在文本字段中使用隱藏的計算值來將文檔屬性中的值寫入。

......

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

其中Hidden是包含計算值的span / div。 希望這可以幫助

我不太了解javascript告訴你為什么,但根據我的測試並使用此鏈接作為示例,此代碼可能適合您:

$("#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()

})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM