2012-12-05 62 views
0

想問一些問題,是JQuery不使用xPages下拉列表和列表框?當點擊提交按鈕時,該值不能保存到nsf中,並停留在同一個屏幕上,我無法調試,因爲xPages沒有提供任何調試工具供我調試後面的代碼,所以感到沮喪xPages無法提交數據與JQuery的xpages組合框和xpages列表框

I用列表框解決了上一個問題,用一個隱藏的編輯框替換了列表框,使用了一些數組,而提交按鈕像一個魅力一樣工作。我可以取代價值不顯示給用戶看,但

現在我嘗試下拉,我使用相同的方法,仍然下拉,並添加另一個編輯框,但它似乎是下拉菜單保持打擾提交按鈕,我不想刪除下拉菜單,但我不知道需要提交的值,任何指南?通過搜索所有的代碼,下拉菜單沒有做任何事情,只是簡單地顯示數據,而不是正常的方式來插入下拉值,我使用Jquery基於另一個下拉菜單的選擇將值添加到下拉菜單中,它的工作般的魅力,但就是無法保存到NSF

部分的jQuery代碼

function insertDropDown(sDiv){ 
var sKeep=[]; //store data as array 
var sValue=""; 

$('select[id$=hidCombo] option').each(function() { 
    sKeep.push($(this).attr('value')); 
}); 

if (sDiv == "") { $('select[id$=comboCompany] option').remove(); return; } 
$('select[id$=comboCompany] option').remove(); 
$('select[id$=comboCompany]').append(new Option("","")); //empty value for the 1at item 

for(var i=0;i<=sKeep.length-1;i++){ 
    if (sKeep[i].trim() != ""){ 
     if(sKeep[i].substr(0,sDiv.length) == sDiv) 
     { 
      var selName=sKeep[i].substr(sDiv.length); 
      $('select[id$=comboCompany]').append(new Option(selName,selName)); 
     }    
    } 
}} 


function setHidComp(){$('select[id$="comboCompany"]').on('change', function() { 
    var sDiv = $('select[id$=comboDivision]').val().trim(); 

    $('select[id$="hidCombo"]').val(sDiv + $(this).val()); 
    $('input[id$="inputText1"]').val($(this).val()); 
}); 

}

的XPages示例代碼

<xp:label value="*Company :" id="fl_Company" for="inputText1" themeId="Form.Label"> 
       </xp:label></xp:td> 
      <xp:td> 

      <xp:comboBox id="comboCompany"></xp:comboBox> 
      <xp:inputText id="inputText1"><xp:this.value><![CDATA[${javascript:var bt = compositeData.dbSource.flCompany;bt = bt || "currentDocument.fl_Company"; return '#{'+bt+'}';}]]></xp:this.value></xp:inputText></xp:td> 

任何想法?只要組合框有價值,我無法提交成功,我已經通過網絡搜索,xPages的信息是如此可怕的幾個,並對我的可憐的英語感到抱歉

+0

經過幾天的努力,很難找到任何解決方案,我用HTML 替代xpages組合框作爲解決方法,它工作得很好,因爲組合框只是充當用戶選擇數據的虛擬對象,但仍然有任何答案這比這更好,請讓我知道,我仍然不知道爲什麼xpages組合框不允許我使用jQuery來動態插入值 – Se0ng11

回答

0

XPage組合框和列表框使用dijit控件dojo工具包。試圖混合使用jQuery和Dojo不是爲了隱隱的發現心靈。除非你有3個非常好的理由(和「我只是喜歡它」只是一個),否則你最好堅持使用Dojo,除非你可以讓用戶負擔更多的JavaScript負擔,或者讓自己從XPage中移除所有的Dojo。

+0

不知道它是否使用dojo toolkit,我沒有檢查代碼,它是純粹的xpages組合框和列表框,在xPages中沒有任何dojo,這就是爲什麼我使用jQuery來增強現有xpages的原因 – Se0ng11

+0

XPages源代碼是XML。 JSF引擎對它做Dojo。當你使用jQuery時,你加載了兩個庫,因爲XPages確實加載了Dojo。而且dojo不能做到(雖然不同),但jQuery卻做到了。爲了保持您的應用程序的精益,請遵守Dojo – stwissel