在提交表单之前,我一直试图验证几个字段。一旦这些字段被CF验证,如果用户没有登录,我希望弹出一个表单中的符号。然而,问题是表单中的符号是在没有验证的情况下弹出的。
inquiry.cfm
<cfif not isdefined("form.p1")>
<cfform name="inquire" action="inquiry.cfm" method="post">
<input type="hidden" name="p1" value="1">
<cfinput type="text" name="email" size="50" maxlength="50" required="yes" autofocus="on" validate="email">
<cfinput type="text" name="subject" size="50" maxlength="50" required="yes" validate="noblanks">
<cftextarea name="message" cols="45" rows="8" wrap="soft" required="yes" validate="noblanks"></cftextarea>
<cfif signedin>
<input type="submit" value=" Send ">
<cfelse>
<input type="submit" value=" Send " onclick="signin(); return false">
</cfif>
<cfelse>
do stuff....
</cfif>"signin“函数将以形式弹出该符号。
除以上所述外,我迄今所作的尝试如下:
任何帮助都是非常感谢的。提前谢谢。
发布于 2015-01-27 16:44:52
@Jack,这只是使用ajax验证表单字段的一个例子。为了使用它,您可能需要对它做一些更改。此外,我更喜欢在这个简单的例子中使用html表单。假设我们有一个validatoin.cfc,它的方法名为“验证”,它需要一个arg。
<cffunction name="validation" access="remote" returntype="any" returnformat="JSON" output="false">
<cfargument name="args" type="any" default="">
<cfset var retval ='{"return":"false"}'>
<cfif len(trim(arguments.args))>
<cfset retval = '{"return":"true"}'>
</cfif>
<cfreturn retval>
</cffunction>这是cfm文件的代码。
<div id="target">
<form name="inquire" action="TestOne.cfm" method="post">
<input type="hidden" name="p1" value="1">
<input id="email" type="text" name="email" size="50" maxlength="50" required="yes" autofocus="on" validate="email" ><br><br>
<input type="text" name="subject" size="50" maxlength="50" required="yes" validate="noblanks" ><br><br>
<textarea name="message" cols="45" rows="8" wrap="soft" required="yes" validate="noblanks" ></textarea>
</form>
</div>
<script>
jQuery("#target").on( "click", function(){
var d = $('#email').val();
$.ajax({
type: 'POST',
url: 'validation.cfc?method=validation',
dataType: "json",
data: { args: d },
success: function(data) {
if(data.return != 'true'){
alert("Please enter an valid email address"); }
}
});
}
</script>https://stackoverflow.com/questions/28142742
复制相似问题