標題很爛,對不起。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修復此問題?