首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提交前的CFForm验证和onclick

提交前的CFForm验证和onclick
EN

Stack Overflow用户
提问于 2015-01-25 23:18:33
回答 1查看 1.3K关注 0票数 1

在提交表单之前,我一直试图验证几个字段。一旦这些字段被CF验证,如果用户没有登录,我希望弹出一个表单中的符号。然而,问题是表单中的符号是在没有验证的情况下弹出的。

inquiry.cfm

代码语言:javascript
复制
<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“函数将以形式弹出该符号。

除以上所述外,我迄今所作的尝试如下:

  1. onSubmit而不是onClick。但是,在用户登录之前,我不想提交表单。
  2. 将onClick放在CFFORM标记中,但CF验证和登录屏幕将同时弹出。解散CF字段后,验证屏幕,但只有填写在屏幕上的标志,才会提交空白表格,即不进行验证。
  3. 使用CFINPUT标记而不是输入。没有什么区别,但也搞砸了按钮的文字。

任何帮助都是非常感谢的。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-01-27 16:44:52

@Jack,这只是使用ajax验证表单字段的一个例子。为了使用它,您可能需要对它做一些更改。此外,我更喜欢在这个简单的例子中使用html表单。假设我们有一个validatoin.cfc,它的方法名为“验证”,它需要一个arg。

代码语言:javascript
复制
  <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文件的代码。

代码语言:javascript
复制
    <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>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28142742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档