ValidateThis EqualTo ClientFieldName Проверка JavaScript - PullRequest
1 голос
/ 30 ноября 2011

Заголовок отстой, извините.

Требуется немного времени, чтобы настроить мою проблему, поэтому я попытаюсь упростить ее.

Моя форма использует структурную нотацию.

<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?

1 Ответ

0 голосов
/ 01 декабря 2011

Я задал вопрос в ValidateThis Google Group и получил быстрый ответ.

http://groups.google.com/group/validatethis/browse_thread/thread/2b18af00d3f5ce98

Это ошибка в ValidateThis, но она была исправлена ​​и теперь является частью ветки разработки в github.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...