使用自定义JavaScript验证扩展Coldfusion CFFORM验证

时间:2011-07-27 00:52:46

标签: javascript coldfusion

有没有人知道如何将自定义Javascript验证与内置的Coldfusion验证相结合,那么自定义Javascript警报是否与CF一样被置于同一警报框中?我知道CF在表单中添加了一个onsubmit事件并创建了一个_CF_check ['name of form']函数来进行一些js验证,但是如何组合警报呢?

3 个答案:

答案 0 :(得分:3)

如评论中所述,您可以使用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
  } 

答案 1 :(得分:0)

我认为你能做到的唯一方法就是从你的自定义函数调用CF内置javascript函数,如下面的代码。

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

答案 2 :(得分:0)

我实际上已经放弃了使用CFFORM的内置验证机制和整个CFFORM,通过在CFC方法中创建验证逻辑,并使用jQuery.ajax()远程调用这些验证逻辑。这使您可以将验证保存在一个位置,并使您可以将其用于客户端和服务器端验证。