Расширение проверки Coldfusion CFFORM с помощью пользовательской проверки JavaScript - PullRequest
0 голосов
/ 27 июля 2011

Кто-нибудь знает, как объединить пользовательскую проверку Javascript со встроенной проверкой Coldfusion, чтобы настраиваемое предупреждение Javascript свернулось в то же окно, что и CF?Я знаю, что CF добавляет в форму событие onsubmit и создает функцию _CF_check ['name of form'] для проверки js, но как мне объединить предупреждения?

Ответы [ 3 ]

3 голосов
/ 27 июля 2011

Как упоминалось в комментариях, вы можете использовать атрибут onValidate для вызова пользовательской функции JavaScript.Не так элегантно, как использование cfselect (которое вы сказали, что не можете использовать).Но он объединяет оповещения и без взлома внутренних функций.Если по какой-то причине вы не можете использовать onValidate, то вам, вероятно, придется копаться во внутренних органах.

<script type="text/javascript">
    function yourFunction(frm, fld, value){
        // some pointless validation
        var elem = document.getElementById('foo');
        return elem.options[elem.selectedIndex].value == 2;
    }
</script>

<cfform name="theForm" method="post">
   <select name="foo" id="foo">
        <option value="0">apples</option>
        <option value="1">oranges</option>
        <option value="2">pear</option>
        <option value="3">grape</option>
    </select>
    <cfinput type="hidden" name="fooValidate" onValidate="yourFunction" 
            message="You must select pears because we say so..">
    <input type="Submit" name="txtSubmit">
</cfform>

Примечание. Подпись вашей функции JavaScript должна быть:

  function yourFunction(formObject, formField, fieldValue) {
       ...
      // return true if validation was successful
  } 
0 голосов
/ 27 июля 2011

Я фактически отошел от использования встроенного механизма проверки CFFORM и CFFORM в целом, создав логику проверки в методах CFC и вызывая их удаленно, используя jQuery.ajax().Это позволяет хранить вашу проверку в одном месте и использовать ее как для проверки на стороне клиента, так и на стороне сервера.

0 голосов
/ 27 июля 2011

Я думаю, что единственный способ сделать это - просто вызвать встроенную функцию javascript CF из вашей настраиваемой функции, как показано в следующем коде.

<script>
    function myFunction (_CF_this) {
        .....
        .....
        _CF_checkmyForm(_CF_this) // here is CF built-in function
        .....
        .....
    }
</script>

<cfform name="myForm">
    <cfinput name="txtInput" required="Yes">
    <input type="Submit" name="txtSubmit">
</cfform>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...