【问题标题】:Kohana 3 form select validationKohana 3 表单选择验证
【发布时间】:2011-04-21 10:29:18
【问题描述】:

干草, 我正在尝试验证 kohana 3.0 中的选择,并且我正在使用必要的规则。但是,当用户没有做出选择时,验证不会“启动”。

<select id="discipline" name="discipline" >
<option value="0"> -- Select One -- </option>
<option value="-2">Information Technology and Engineering</option>
<option value="4">Business and Training Seminars</option>
</select>

这是我的选择,现在我在检查验证错误之前已将这些规则应用于 post 数组。

$post = Validate::factory($_POST)
                ->rule('discipline', 'not_empty')
                ->rule('discipline', 'numeric');

当我提交表单而不做选择时,表单提交并且规则应该停止它。

有什么想法吗?

【问题讨论】:

    标签: kohana


    【解决方案1】:

    您仍然将第一个值设为 0。将值保留为 value=""。 0 是数字且不为空。

    【讨论】:

    • 或从第一个选项中删除value 属性
    • 如果你删除值,那么值将变为 -- 选择一个 -- 将不起作用
    【解决方案2】:
    1. 用空白字符串替换 0
    2. 添加-&gt;rule('discipline', 'in_array', array(array(-2, 4))); 以检查所选学科是否在有效集合中。

    【讨论】:

      【解决方案3】:

      字符串空第一个选项

      <select name="fruit" required>
        <option value="">select fruit</option>
        <option value="banana">banana</option>
      </select>
      

      那么一些 css 可能会有所帮助

      form:invalid button[type="submit"], form:invalid input[type="submit"] {
        opacity: 0.5;
        cursor: default;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多