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