簡體   English   中英

使用自定義JavaScript驗證擴展Coldfusion CFFORM驗證

[英]Extending Coldfusion CFFORM Validation with Custom JavaScript Validation

有誰知道如何將自定義Javascript驗證與內置的Coldfusion驗證結合使用,以便將自定義Javascript警報與CF警報放到同一警報框中? 我知道CF向表單添加了一個onsubmit事件,並創建了_CF_check ['表單名稱']函數來進行一些js驗證,但是我將如何組合警報?

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

我認為唯一的方法就是從您的自定義函數中調用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>

實際上,通過在CFC方法中創建驗證邏輯,並使用jQuery.ajax()遠程調用它們,我實際上不再使用CFFORM的內置驗證機制以及整個CFFORM。 這使您可以將驗證放在一個地方,並使您可以將其用於客戶端驗證和服務器端驗證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM