【问题标题】:webshims validate 000-00-00 date on submitwebshims 在提交时验证 000-00-00 日期
【发布时间】:2014-08-27 08:53:13
【问题描述】:

我想用这样的空值验证输入日期

<input type="date" value="0000-00-00" id="date" />

提交时,我有一条逻辑消息“请输入日期。”

我发现了类似http://jsfiddle.net/trixta/zRGd9/embedded/result,html,js,css/ 的内容。 如果你知道怎么做,这里有一个示例http://jsfiddle.net/zRGd9/24/

【问题讨论】:

    标签: javascript validation date webshim


    【解决方案1】:

    这根本不是一个日期,根据浏览器的实现,这个值要么被清空,要么被认为是 badInput 或 typeMismatch。

    如果你想使用它,你有以下选择:

    1. 自己严格清空:

    $('input[type="date"]') .on('change.empty', function () { var val = $.prop(this, 'value'); if (!val || val == '0000-00-00') { $.prop(this, 'value', ''); } }) .trigger('change.empty') ;

    1. 设置 novalidate 属性:

    ```

    <form novalidate="">
           <!-- ... -->
    </form>
    
    1. 如果您还想允许无效日期,请使用不同的输入:

    ```

    <input type="number" min="0" max="31" /> 
    <input type="number" min="0" max="12" />
    <input type="number" min="0" max="9999" />
    

    【讨论】:

    • 我会尝试第一个技巧,但你确定 tigger() rrrr ;¬)
    • 是的,触发是因为您的服务器最初可能会呈现此值。事实上,我使用命名空间('.empty')触发了更改事件,这使它防弹,只有这个侦听器而不是其他侦听器被调用。
    • 我刚刚在这里添加了一些小改动。起初这可能看起来很愚蠢,但如果出现 badInput 错误,DOM 世界中的值是 '',但用户世界中的值是存在的。
    • 只是因为你写的是 tigger 而不是 tRigger ;¬)
    猜你喜欢
    • 2021-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-25
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 1970-01-01
    相关资源
    最近更新 更多