ColdFusion:只需按一下按钮,就可以动态地将CFSELECT添加到文档中

时间:2012-10-05 19:25:55

标签: javascript coldfusion

目前我正处于后端有商家解决方案服务的项目中。不幸的是我搞砸了。最初我们认为我们不必填充网站加载后我们“生成”的任何表单字段。因此,我只需使用一些javascript即可通过单击按钮创建其他表单条目。这很好用,我们可以使用用户放在那里的任何东西从ColdFusion上传到数据库。

但我们的管理层没有给我们适当的设计要求。他刚刚回来说“好的,现在只需添加一些下拉菜单,以便他们可以选择版本”。我想你可以在这里看到问题。现在我们需要使用来自服务器的信息填充动态表单字段的部分。 Ergo客户端解决方案现在基本上落在了crapper上。

所以我来找你帮助朋友。有没有办法仍然保留我使用ColdFusion等效的JS所做的功能?我知道必须有,但我想找一个简单的转换。

以下是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');">

1 个答案:

答案 0 :(得分:1)

我认为您的问题显示了对CF以及任何应用服务器的工作原理的误解。您的浏览器向服务器发送请求,服务器读取coldfusion但使用它生成html,然后将其发送回您的浏览器。没有请求另一个页面,以及另一次往返服务器,没有办法让coldfusion为你做任何事情。

但不要害怕,你可以做些什么。加载一个JS框架并将一个AJAX命令发送到cfm,该cfm只包含你的cfselect代码。它可以返回HTML,然后您可以使用JS直接注入页面。