2011-11-29 24 views
1

標題很爛,對不起。ValidateThis EqualTo ClientFieldName JavaScript驗證

需要一點點來設置我的問題,所以我會嘗試並簡化它。

我的表單使用結構符號。

<input type= "text" 
     name= "bank[routing_number]" 
     id=  "bank_routing_number" 
     value= "#rc.bank[ "routing_number" ]#" 
     autocomplete= "off" 
     maxlength=  "9" /> 

<input type= "text" 
     name= "bank[routing_number_confirmation]" 
     id=  "bank_routing_number_confirmation" 
     value= "#rc.bank[ "routing_number_confirmation" ]#" 
     autocomplete= "off" 
     maxlength=  "9" /> 

ValidateThis規則在服務器上正常工作。我在ColdFusion 9.0.1上運行。

我遇到的問題是由ValidateThis生成的JavaScript代碼。

這是EqualTo的JavaScript規則。

fm['bank[routing_number_confirmation]'].rules('add',{"equalto":":input[name='routing_number']","messages":{"equalto":"Bank ACH Routing Numbers (ABA) must match."}}); fm['bank[routing_number_confirmation]'] = $(":input[name='bank[routing_number_confirmation]']",$form_register_new); 

相對位是這樣的:

":input[name='routing_number']" 

我期待這個代碼是:

":input[name='bank[routing_number]']" 

這裏是routing_number和routing_number_confirmation的ValidateThis規則。

{ "name":    "routing_number" , 
     "clientFieldName": "bank[routing_number]" , 
     "rules":   [ 
      { "type":    "required" , 
       "failureMessage": "Bank ACH Routing Number (ABA) is required." 

      } , 
      { "type":    "rangelength" , 
       "params":   [ 
        { "name": "minlength" , "value": "9" } , 
        { "name": "maxlength" , "value": "9"} ] , 
       "failureMessage": "Bank ACH Routing Number (ABA) is 9 digits." 

      } 

     ] 

    } , 

    { "name":    "routing_number_confirmation" , 
     "clientFieldName": "bank[routing_number_confirmation]" , 
     "rules":   [ 
      { "type":    "required" , 
       "failureMessage": "Confirm Bank ACH Routing Number (ABA) is required." 

      } , 
      { "type":    "equalTo" , 
       "params": [ 
        { "name":  "comparePropertyName" , 
         "value": "routing_number" } 
       ] , 
       "failureMessage": "Bank ACH Routing Numbers (ABA) must match." 

      } , 
      { "type": "rangelength" , 
       "params": [ 
        { "name": "minlength" , "value": "9" } , 
        { "name": "maxlength" , "value": "9"} ] , 
       "failureMessage": "Bank ACH Routing Number (ABA) is 9 digits." 

      } 

     ] 

    } 

這是ValidateThis腳本的加載順序。

// jQuery and jQuery Validate are loaded. 

#getColdboxOCM().get("ValidateThis").getInitializationScript(
    JSIncludes= false)# 

// Other ValidateThis scripts 

#getColdboxOCM().get("ValidateThis").getValidationScript(
    objectType= "registration/bank-account" , 
    formName= rc.form.name)# 

routing_number和routing_number_confirmation的其他JavaScript規則工作得很好。我已經添加了一些自定義規則來解決這個問題,但有沒有一種方法可以使用ValidateThis修復此問題?

回答