[英]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.