有没有人知道如何将自定义Javascript验证与内置的Coldfusion验证相结合,那么自定义Javascript警报是否与CF一样被置于同一警报框中?我知道CF在表单中添加了一个onsubmit事件并创建了一个_CF_check ['name of form']函数来进行一些js验证,但是如何组合警报呢?
答案 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()
远程调用这些验证逻辑。这使您可以将验证保存在一个位置,并使您可以将其用于客户端和服务器端验证。