【发布时间】:2020-07-14 01:05:52
【问题描述】:
场景:我有一个带有促销代码字段的注册表单。我需要在不重新加载页面的情况下检查用户输入的促销代码是否有效。
促销代码都保存在这样的结构中(不是实际值,而是相同的格式):
<cfset sysPromoCode = structNew()>
<cfset tmp = StructInsert(sysPromoCode,"PC1","1.00")>
<cfset tmp = StructInsert(sysPromoCode,"PC5","5.00")>
<cfset tmp = StructInsert(sysPromoCode,"PC10","10.00")>
<cfset tmp = StructInsert(sysPromoCode,"PC15","15.00")>
<cfset tmp = StructInsert(sysPromoCode,"PC20","20.00")>
<cfset REQUEST.PromoCodeStruct = sysPromoCode>
在我的组件文件('cmp-settings.cfc')中,我创建了这个函数:
<cffunction name="ValidatePromoCode" access="remote" returnformat="json" output="false">
<cfargument name="PromoCode" type="string" required="true">
<cfif StructKeyExists(REQUEST.PromoCodeStruct, arguments.PromoCode)>
<cfset isvalidPromoCode = true>
<cfelse>
<cfset isvalidPromoCode = false>
</cfif>
<cfreturn isvalidPromoCode />
</cffunction>
我正在使用的表单部分:
<label for="fPromo">Promo Code</label>
<input type="text" class="form-control" id="id_PromoCode" name="PromoCode" maxlength="10">
<a href="javascript:void();" onclick="applyPromo();" class="btn btn-success btn-sm">Apply</a>
<div id="pInvalid" style="display:none;color:##ff0000;font-weight:bold;">Invalid code!</div>
<div id="pValid" style="display:none;color:##66cc00;font-weight:bold;">You've entered a valid code!</div>
'applyPromo()' 是一个基本的 javascript 函数,它在 pInvalid 和 pValid 字段上运行显示/隐藏过程。那是我要替换的脚本,因为它当前在页面源中公开了促销代码列表。我希望它必须替换为 AJAX 调用,但我对 JQuery 和 AJAX 真的不够熟悉,无法自己找到解决方案。
如果 StackOverflow 的新手提供任何建议和帮助,我们将不胜感激。
【问题讨论】:
标签: javascript jquery ajax coldfusion