回答我自己的問題,以防萬一它可以幫助別人。
我有實際做些事情與下載的數據很難找到和這個例子可以說明
- 粗糙的jQuery相當於簡單CF BIND的$獲得(
- 例子),而不僅僅是警報()它
$ .get()肯定不是推薦的方式來引入jQuery。
這可能會讓「專業人士」驚恐地大喊大叫。它不應該被認爲是複製粘貼代碼,只是提示想辦法做到這一點。
它實際上已從我的工作版本強烈編輯,因此它可能包含虛假的拼寫錯誤。
好吧,足夠的免責聲明。
function dollarize (price) {
// unrelated code - just ensure that the price is always displayed with two decimals
}
function downloadPrice(url, DOM_Item_ID) {
$.get(url,
function(data,status){ // keep in mind that this function is called ASYNCHRONOUSLY
//alert(data); // typical data received, for a $1 item: <wddxPacket version='1.0'><header/><data><string>1</string></data></wddxPacket>
var payload = $(data).find('string').text();
$('##' + DOM_Item_ID).text('$' + dollarize(parseFloat(payload))); <!--- normally a single # - doubled since in a <cfoutput> --->
UpdateTotalPrice();
},
"xml");
}
function UpdateTotalPrice() {
var price = 0;
for(var e=1;e<=#MAX_NUMBER_ITEM#;e++)
{
var node = document.getElementById("Item_"+e);
var ID = node.selectedIndex;
if(ID != 0) {
prix += parseFloat(document.getElementById("Price_"+e).childNodes[0].nodeValue.substring(1)); // substring(1): removes the $ added above
}
}
document.getElementById('TotalPrice').childNodes[0].nodeValue = '$' + dollarize(prix);
}
function onChangeItem(e) {
var ID = document.getElementById("Item_"+e).value;
downloadPrice("#application.CFC_PATH#gestion-equipements.cfc?method=trouvePrixStandardEquipement&ID="+ID,
"Price_"+e);
}
第二欄:
<cfloop from="1" to="#MAX_NUMBER_ITEM#" index="e">
...
<cfselect Name="Item_#e#" ID="Item_#e#" bind="........." bindonload="yes" queryPosition="below" onChange="onChangeItem(#e#)"><option value="0">--</cfselect>
在第3列中的每個價格項目:
<cfdiv ID="Price_#e#" align="right">$0.00</cfdiv> <!--- content of the div (i.e. $0.00) must NOT be empty, otherwise childNodes[0] above will fail --->
總價:
<cfdiv ID="TotalPrice">$0.00</cfdiv>
來源
2013-08-03 02:33:31
jmr
我認爲你應該做的第一件事就是停止使用任何ColdFusion UI嚮導 - 這是ver y執行不力 - 只需使用HTML和JS(JS通過一個流行的庫)。這樣你就不會對抗CF的以UI爲中心的特性的侷限性和過時的質量。只需使用JQuery或其他東西。 –
我不同意。我把它等同於重新發明輪子。 –
第三列(div)究竟是什麼? –