jquery验证引擎总是在ajax验证上获得相同的响应

时间:2013-04-19 11:13:45

标签: jquery ajax coldfusion jquery-validation-engine

我有jquery验证引擎验证表单。例如,检查mobileno的代码已存在于数据库中:

MobileNumber/Login Id : 
<input type="text"  class="k-textbox validate[required,custom[phone],ajax[ajaxMobileCallCfm]]  text-input" value="" name="mobileno"  id="mobileno"/>

并调用验证引擎

jQuery(document).ready(function()
{
            jQuery("#register").validationEngine();

});

语言文件中的内联验证规则(jquery.validationEngine-en)

"ajaxMobileCallCfm": {
                    "url": "checkmobileno.cfm",
                    "alertTextOk": "* This username is available",
                    "alertText": "* This user is already taken",
                    "alertTextLoad": "* Validating, please wait"
                }

和checkmobileno.cfm

<cfset mobileno=#mobileno#>
<cfset arrayToJs = ArrayNew(2)>
  <cfif #mobileno# eq "8888888888">
    <cfset arrayToJs[1][1]="mobileno">
    <cfset arrayToJs[1][2]=true>
    <cfset arrayToJs[1][3]='This user is available'>
 <cfelse>
        <cfset arrayToJs[1][1]="mobileno">
        <cfset arrayToJs[1][2]=false>
        <cfset arrayToJs[1][3]='This user is already taken'>
  </cfif>

 <cfset theJSON = #SerializeJSON(arrayToJs)#>

<cfoutput> 
 #theJSON#
</cfoutput>

现在,检查移动设备是否可用于模糊或键盘事件。

当我尝试使用数字时,它总是显示 *此用户已被采取。请帮我解决问题。

由于

1 个答案:

答案 0 :(得分:0)

正如西蒙所说,

<cfif mobileno eq "8888888888">
    <cfset arrayToJs[1][1]="mobileno">
    <cfset arrayToJs[1][2]=true>
    <cfset arrayToJs[1][3]='This user is available'>
<cfelse>

表示唯一可用的号码是8888888888

我想你的意思是 <cfif mobileno neq "8888888888">或任何数字列表尚未被采用。我假设最终产品会检查数据库,看起来更像<cfif not qUsedNumbers.recordCount>

...也

<cfset mobileno=#mobileno#> <!--- is redundant--->

<!--- and you don't need so many pound signs. --->
<cfset mobileno=#mobileno#> 
<!--- should be --->
<cfset mobileno=mobileno> 

<cfif #mobileno# eq "8888888888"> 
<!--- should be --->
<cfif mobileno eq "8888888888">

<cfset theJSON = #SerializeJSON(arrayToJs)#> 
<!--- should be --->
<cfset theJSON = SerializeJSON(arrayToJs)>