我希望这是一个简单的修复,但这是我的情况。使用jQuery提交数据通过cfloop序列化和循环数据
用户输入一个记录号码,并返回一个X行数的表单(数据馈送来自外部数据馈送,因此我无法控制数据的输入方式)。我使用jQuery来序列化表单变量,然后通过ajax调用将这些信息发送到另一个页面。在操作页面上,我正在循环显示&符号(coldfusion cfloop)。今天出现的问题是,在某些情况下,其中一个表单域可能包含与&符号(&),这会打破操作页面上的循环。
任何人有任何建议如何解决这个问题?
这里是我的AJAX功能
var str = $("#ResourceRequest").serialize();
$.ajax({
type: "POST",
url: "index.cfm?do=misc.submitRequest&wddxString=" + encodeURIComponent(str),
data: str,
contentType: "application/json; charset=utf-8",
dataType: "html",
beforeSend: function() {
// $('#spinner').css("visibility","visible");
},
success: function(data) {
// $('#spinner').css("visibility","hidden");
$('#submitRequest_status').html(data);
$('#btnSave').html('Submit Request').attr('disabled','');
},
error: function() {
$('#btnSave').html('Submit Request').attr('disabled','');
// $('#spinner').css("visibility","hidden");
alert("We apologize for the inconvenience but\nwe were unable to process your request. [error: 258]");
// $('#submitRequest_status').html('');
}
});
这里是我的CFLOOP
<cfset var i=0>
<cfloop list="#s#" index=curr_val delimiters="&">
<cfset attr=ListGetAt(curr_val & " ",1,"=")>
<cfset val=ListGetAt(curr_val & " ",2,"=")>
<cfif attr EQ "vpmo">
<cfset PROJVPMO=ListAppend(PROJVPMO,val)>
<cfelseif attr EQ "projectname">
<cfset PROJNAM=ListAppend(PROJNAM,val)>
<cfelseif attr EQ "pmt">
<cfset PROJPMT=ListAppend(PROJPMT,val)>
<cfelseif attr EQ "kickoff">
<cfset PROJKIC=ListAppend(PROJKIC,val)>
<cfelseif attr EQ "goLive">
<cfset SYSGOLI=ListAppend(SYSGOLI,val)>
</cfif>
我已经添加了一个例程来检查数据的表单域。我应该可以检查val()for和替换它。 '(this).text()。replace('&','gocowboys');'不工作,也不是'$(this).val()。replace('&','gocowboys'); ' – HPWD 2011-03-23 19:39:07
我从[link](http://stackoverflow.com/questions/2950357/jquery-removing-character-from-string)得到了上述想法。 – HPWD 2011-03-23 19:41:20
'$(this).val()。replace(/&/ g,'gocowboys')'做了诡计。 – HPWD 2011-03-23 20:13:46