Заголовок отстой, извините.
Требуется немного времени, чтобы настроить мою проблему, поэтому я попытаюсь упростить ее.
Моя форма использует структурную нотацию.
<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.
У меня проблема с кодом JavaScript, сгенерированным ValidateThis.
Это правило JavaScript для EqualTo.
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]']"
Вот правила ValidateThis для routing_number и routing_number_confirmation.
{ "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 )#
Другие правила JavaScript для routing_number и routing_number_confirmation работают просто отлично. Я добавил несколько пользовательских правил, чтобы обойти эту проблему, но есть ли способ исправить это с помощью ValidateThis?