【问题标题】:How can I validate that a radio button was selected using cfform built-in validation?如何使用 cfform 内置验证来验证是否选择了单选按钮?
【发布时间】:2013-12-11 17:21:00
【问题描述】:

假设我有一个如下所示的简单 cfform:

<cfform id="fruitForm" method="post" action="">
    <cfinput type="radio" name="fruit" id="fruit_apple" value="Apple" /><label for="fruit_apple">Apple</label><br />
    <cfinput type="radio" name="fruit" id="fruit_orange" value="Orange" /><label for="fruit_orange">Orange</label><br />
    <cfinput type="radio" name="fruit" id="fruit_pear" value="Pear" /><label for="fruit_pear">Pear</label><br />

    <cfinput type="submit" name="submitFruit" id="submitFruit" value="Submit" />
</cfform>

如何使用内置的 cfform 验证来确保至少选择了该组中的一个单选按钮?我尝试向每个单选按钮添加一个 validate="required" ,但它不起作用。是否有任何简单的方法可以“要求”使用 cfform 验证来选择其中一个按钮?

【问题讨论】:

  • 永远不要使用 CFFORM,如果由于某种原因您从不使用内置验证,并且如果您出于某种原因这样做,那么您应该得到任何痛苦。
  • 因为cfform 是撒旦的产物,每次有人使用它,一只小猫就会死去。不过说真的,即使对于单个字段表单,我也不会使用 cfform 或内置验证,主要原因是因为它不会在其他地方使用,我认为您的应用程序应该有一些一致性。每个表单都应该使用相同的流程进行验证和持久化,否则,管理应用程序变得很困难。
  • 而且,您必须寻求有关使用cfform 和对具有3 个元素的表单的内置验证的帮助这一事实应该足以有理由不使用cfform.....永远。
  • @DanBracuk 在 ColdFusion UI 库中使用 cfform 和其他半途而废的实现是浪费时间和精力。首先,你最终会遇到问题,这会让你希望你没有使用它们。其次,知道如何使用cfform 可能会让你成为更好的ColdFusion 开发人员,但技能不会转移到其他技术。知道如何将form 与 JS 库一起使用将转移到任何其他语言。最后,您可以使用 cfform 和其他 UI 废话做的任何事情都可以通过其他库更轻松、更快地完成 - 并且可以更新。
  • @froadie 你不需要 JS 来处理表单验证——不管表单有多大。当然,您需要 JS 进行客户端验证,但您应该始终进行服务器端验证。而且,您可以非常轻松地进行服务器端验证无需使用cfform

标签: validation coldfusion radio-button cfform


【解决方案1】:

这对我有用:

<cfform action="abc.cfm" method="post">
<cfinput type="radio" required="yes" message="pick something" name="x" value="1">radio 1
<cfinput type="radio" required="yes" message="pick something" name="x" value="">radio 2
<input type="submit" />
</cfform>

事实上,你甚至不需要 message 属性。它仍然会验证。

【讨论】:

    【解决方案2】:

    帮自己一个忙,不要使用cfform 进行验证。编写您自己的服务器和客户端验证,但根据cfinput documentation,如果您为每个单选按钮添加required="true" 属性,ColdFusion 将为您进行客户端验证。

    注意:用户可以绕过此验证并在不选中单选按钮的情况下仍然提交表单。您还需要进行服务器端验证。

    <cfform id="fruitForm" method="post" action="">
      <cfinput type="radio" name="fruit" id="fruit_apple" value="Apple" required="true" /><label for="fruit_apple">Apple</label><br />
      <cfinput type="radio" name="fruit" id="fruit_orange" value="Orange" required="true" /><label for="fruit_orange">Orange</label><br />
      <cfinput type="radio" name="fruit" id="fruit_pear" value="Pear" required="true" /><label for="fruit_pear">Pear</label><br />
    
      <cfinput type="submit" name="submitFruit" id="submitFruit" value="Submit" />
    </cfform>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      • 1970-01-01
      • 2016-02-15
      • 2019-01-08
      • 1970-01-01
      • 2014-04-13
      • 1970-01-01
      相关资源
      最近更新 更多