Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Onclick函数不适用于CFINPUT验证_Javascript_Forms_Coldfusion_Cfform_Cfinput - Fatal编程技术网

Javascript Onclick函数不适用于CFINPUT验证

Javascript Onclick函数不适用于CFINPUT验证,javascript,forms,coldfusion,cfform,cfinput,Javascript,Forms,Coldfusion,Cfform,Cfinput,我试图使用CFINPUT验证字段,然后调用弹出窗口函数在提交表单之前做更多的工作,但它不起作用。onclick函数似乎先于CFINPUT验证。只要我点击提交按钮,它就会首先调用弹出窗口函数,而不会验证字段。我需要它: 首先验证字段 调用弹出函数 然后在弹出窗口自行关闭后提交表单 (注:我在这里看到了其他类似案例,但没有给出答案) 代码如下所示: <cfform action="register.cfm" method="post"> <cfinput t

我试图使用CFINPUT验证字段,然后调用弹出窗口函数在提交表单之前做更多的工作,但它不起作用。onclick函数似乎先于CFINPUT验证。只要我点击提交按钮,它就会首先调用弹出窗口函数,而不会验证字段。我需要它:

  • 首先验证字段
  • 调用弹出函数
  • 然后在弹出窗口自行关闭后提交表单
  • (注:我在这里看到了其他类似案例,但没有给出答案)

    代码如下所示:

        <cfform action="register.cfm" method="post">
            <cfinput type="text" name="username" size="50" maxlength="100" required="yes" autofocus="on" validate="noblanks">
            <cfinput type="text" name="address" size="50" maxlength="100" required="yes" validate="noblanks">
    ....
             <input type="submit" value=" Send " onclick="popup()">
    ....
    
    
    ....
    ....
    

    请帮忙。谢谢。

    您尝试执行的cfinput验证是客户端等效的

    <cfif len(trim(string)) gt 0>
    
    
    
    (编辑:这并不意味着您应该完全依赖客户端验证。客户端验证更像是帮助访问者的一项功能。服务器端验证仍然很重要。)

    我不得不说,这是非常弱的验证。任何包含至少1个非空白字符的内容都将通过测试。人们将能够拥有像“!”这样的用户名,这不是狂热的,但这只是一些信息

    在上,它们显示了一个示例表单(以及的链接)

    
    请提供您的姓名、电子邮件地址(不会公布)和评论
    
    名称(必填,至少2个字符)
    

    电子邮件(必填)

    URL(可选)

    您的评论(必填)

    $(“#commentForm”).validate();
    这个非常基本的示例展示了安装验证的简单性,以及一个简单的验证格式

    <input name="ele" type="text" required>
    
    
    
    与您尝试的验证级别完全相同。因此,首先,您几乎可以复制和粘贴代码。(除了可以提出的不同要求外,设置minlength需要一定数量的字符,并且要求至少有一个字符不是空白)

    jQueryValidate可以得到相当广泛的应用,但是基本上很容易安装,一旦您熟悉了,就可以根据需要定制类

    最后一点,不要忽视对CFForm元素的蔑视。似乎其他人忽视了你的问题,但事实并非如此

    老实说,他们是在互联网生活的另一个时期开始出现的,但与他们一起工作总是有点挑剔。在许多人看来,对它们的扩展并没有做得很好,而且经常会激怒缺陷

    能够说
    是非常吸引人的,但是标签会成为一个麻烦,你不容易对它们进行你想要的精细控制。他们是拐杖,而且是生锈的拐杖


    您可能会查看或查看这篇文章,以获得一些很好的见解和示例。

    这是一篇很老的博客文章,因此不确定今天的内容有多准确,但它展示了如何通过&CF\u checkTaskForm()函数运行CFFORM验证。因此,如果您通过
    将表单提交更改为按钮,然后更改弹出函数,首先通过_CF_checkTaskForm()验证表单,如果通过,则继续执行您正在执行的其他JS

    为了扩展这一点,我刚刚查看了CF8和CF11的安装,其中的功能似乎是_CF_checkCFForm_1如果使用该版本的CF,那么类似这样的内容应该会让您走上正确的方向:

    <script>
        popup = function(formreference) {
            var check = _CF_checkCFForm_1(formreference);
    
          if (!check) {
                //if the rules failed then do not submit the form
               return false;
          } else { 
                // Do the popup
          }
        }
    </script>
    
    <cfform action="register.cfm" method="post">
            <cfinput type="text" name="username" size="50" maxlength="100" required="yes" autofocus="on" validate="noblanks">
            <cfinput type="text" name="address" size="50" maxlength="100" required="yes" validate="noblanks">
             <input type="button" value=" Send " onclick="popup(this.form)" />
    </cfform>
    
    
    弹出=函数(formreference){
    var check=_CF_checkCFForm_1(formreference);
    如果(!检查){
    //如果规则失败,则不要提交表格
    返回false;
    }否则{
    //打开弹出窗口
    }
    }
    
    为什么不直接提交到弹出窗口中调用的页面?停止使用
    cfform
    cfinput
    ,分别使用
    form
    input
    。ColdFusion UI功能的实现很差,这会让你头疼。Scott完全正确,cfform元素麻烦多于帮助。Dan不确定你的意思。你能再解释一下吗?弹出窗口和注册页面做不同的事情@ScottStroz和cfqueryparam,我看到人们在使用它,但我如何使用它来实现我想要实现的目标?我对jQuery一无所知。如果有人能显示一个代码来做这件事,这将有很大帮助。谢谢。如果你找不到足够的链接,我不确定我能想出的任何例子都能帮助你。
    <script>
        popup = function(formreference) {
            var check = _CF_checkCFForm_1(formreference);
    
          if (!check) {
                //if the rules failed then do not submit the form
               return false;
          } else { 
                // Do the popup
          }
        }
    </script>
    
    <cfform action="register.cfm" method="post">
            <cfinput type="text" name="username" size="50" maxlength="100" required="yes" autofocus="on" validate="noblanks">
            <cfinput type="text" name="address" size="50" maxlength="100" required="yes" validate="noblanks">
             <input type="button" value=" Send " onclick="popup(this.form)" />
    </cfform>