現在我正在使用後端商家解決方案服務的項目。不幸的是我瘋了。最初我們不認爲我們必須填充網站加載後我們「生成」的任何表單字段。所以我簡單地使用一些JavaScript來創建額外的表單條目,只需點擊一個按鈕。這工作得很好,我們可以使用用戶放置的任何內容從ColdFusion上傳到數據庫。ColdFusion:通過按下按鈕動態添加CFSELECT文檔
但是我們的管理層沒有給我們適當的設計要求。他剛回來說「好吧,現在只需添加一些下拉菜單,以便他們可以選擇版本」。我想你可以在這裏看到問題。現在我們需要用來自服務器的信息填充動態表單字段的的一些。 Ergo的客戶端解決方案現在基本上就是垃圾箱了。
所以我來幫你的朋友。有沒有辦法仍然保留我用JS做的和ColdFusion相同的功能?我知道必須有,但我試圖找到一個簡單的轉換。
這裏的addInput.js文件的外觀:
// JavaScript Document
var counter = 0;
var UID = counter + 1;
var limit = 3;
function addInput(divName){
if (counter == limit) {
alert("You have reached the limit of adding " + counter + " inputs");
}
else {
var newdiv = document.createElement('div');
newdiv.innerHTML = "<input type='hidden' value='new' name='Detail_ID'>"
+ "<input type='text' value='' name='level' maxlength=255 PASSTHROUGH='style=width:640;color:#editcolor#' TABINDEX='5'>"
+"<input type='text' value='' name='offer' maxlength=255 PASSTHROUGH='style=width:640;color:#editcolor#' TABINDEX='5'>"
+"<input type='text' value='' name='disclaimer' maxlength=255 PASSTHROUGH='style=width:640;color:#editcolor#' TABINDEX='5'>";
"<CFSELECT NAME = 'version_no' QUERY = VersionList VALUE = 'code' DISPLAY = 'description' SELECTED = #version_no# ></CFSELECT>"
document.getElementById(divName).appendChild(newdiv);
counter++;
}
}
在此可以創建它的主.CFM頁面上的按鈕:
<input type="button" value="Add Another VIP Level" onClick="addInput('dynamicInput');">
您正在嘗試混合使用服務器端和客戶端腳本。 CF在服務器上呈現併發送給客戶端,一旦它在客戶端上,則不再有CF.您可以使用cfc和ajax完成您想要做的事情。 – Busches
好吧,我不確定你讀了我說得對的。我想要使用這個JS腳本的功能並創建一個Coldfusion等價物。我完全瞭解混合客戶端和服務器端的含義。 爲了避免這些缺陷,我只是想用coldfusion重新創建上述JavaScript的功能。 –
你不能在JS中做某些事情,在大多數情況下,這是其中之一,並在CF中重做它。再次,您可以通過使用ajax調用cfc來生成cfselect通常會實現的內容,從而完成您所要達到的目標。谷歌搜索會發現你很多的例子。 – Busches