小编Jas*_*son的帖子

自定义 HTML5 表单验证最初未显示自定义错误

带有自定义验证的基本 HTML5 表单。如果提交的值不是数字,浏览器应显示错误消息“字段必须是数字”。如果您输入“abc”并按提交(或按回车键),该字段将被标记为无效,但不会出现错误消息。再次按提交(或按回车键),它将显示消息。这种双重提交行为出现在 Windows 和 OS X 上最新版本的 Firefox、Chrome、Safari 和 IE 上。您会注意到第一次提交时会出现默认的“此字段是必需的...”消息,并且没有显示奇怪的行为。

http://jsfiddle.net/6gsr3r4b/

顺便说一句,我很清楚此验证在旧版本的 IE 中不起作用,并且输入字段可能具有number自动完成此验证的类型;这是我的问题的简化示例,仅用于演示目的。

脚本

var form = document.getElementById("form");
var field = document.getElementById("field");

form.onsubmit = validateForm;

function validateForm() {

    if(isNaN(field.value)) {
        field.setCustomValidity("Field must be a number.");
    } else {
        return true;
    }

    return false;
}
Run Code Online (Sandbox Code Playgroud)

HTML

<form id="form">
    <label for="field">Favorite number</label>
    <input type="text" id="field" required>
    <input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

html javascript validation

6
推荐指数
1
解决办法
1万
查看次数

Webpack中的相对CSS URL

Webpack + file-loader + sass-loader无法解析CSS背景图像的相对路径.

已编译的SCSS文件包含/dist/相对于SCSS/CSS文档而不是相对于SCSS/CSS文档的背景图像的路径.我研究过这个问题; sass-loader建议使用resolve-url-loader(带源映射).但是,添加resolve-url-loader对编译的CSS没有任何区别.

我已经能够通过在文件加载器上将'publicPath'设置为'../ ..'来解决此问题.或者通过禁用css-loader上的"url"设置.两者都不是一个好的解决方案,并且会导致复制文件和通过HTML或其他来源引用图像时出现问题.

Webpack和CSS的在线示例将CSS和图像放在同一个文件夹中(通常在根目录中).这不是我的webpack实现的最佳选择.在子文件夹中构造文件的概念似乎是一个相当基本的要求.这只是错误的做法吗?

运行Webpack ^ 3.5.1.Sass-loader ^ 6.0.6.文件加载器^ 0.11.2.Css-loader ^ 0.28.4.

文件结构

example/
??? dist/
?   ??? assets
?   ?   ??? media
?   ?   ?   ??? logo.png
?   ?   ??? styles
?   ?       ??? app.css
?   ?       ??? app.css.map
?   ??? index.html
?   ??? app.bundle.js
??? src/
    ??? assets
    ?   ??? media
    ?   ?   ??? logo.png
    ?   ??? styles
    ?       ??? app.scss
    ??? app.js
Run Code Online (Sandbox Code Playgroud)

app.scss

body {
  background: url(../media/logo.png);
}
Run Code Online (Sandbox Code Playgroud)

app.css …

webpack sass-loader css-loader

6
推荐指数
1
解决办法
1万
查看次数

Grunt-newer与Grunt-uglify和Bower合作

我有一个使用Grunt和Bower的项目.Grunt-uglify将连接/缩小Bower目录中的deploy/scripts.js文件到文件夹.我正在使用Grunt-newer,因此只有deploy/scripts.js在添加或更改新文件时才会更新.一切都很好......除了......

当我使用Bower添加新库时,文件日期反映了文件上传到Bower库(或托管它的任何人)的时间,而不是它在我的计算机上创建的日期.因此,Grunt-newer认为新的Bower库比旧deploy/scripts.js文件更新并且不更新文件.

一个 - 麻烦 - 解决方案是打开新的库.js文件,并重新保存它.它会修改文件日期,因此,grunt-newer将创建deploy/script.js文件.然而,Bower的实用性似乎没有用这种尴尬的解决方案.

gruntjs bower grunt-contrib-uglify

5
推荐指数
1
解决办法
328
查看次数

HashMap使用override equals和hashCode不起作用

对不起......关于这个愚蠢/愚蠢的问题,伙计们:

为什么不equals()hashCode()被应用?

目前他们只是按照我的预期工作HashSet.

UPDATE

EVEN键值5重复但不调用equals和hashCode.

我也想在Value上应用它.

就像在这个例子中HashSet调用equal和hashCode一样,为什么hashMap不被称为equals和hashCode,即使对于key也是如此.

更新2 - 答案

将调用HashMap的键(class-> HashCode,equals).谢谢你们.我对此有点困惑.:)

    public class Employee {

        int id;
        String name; 
        int phone;

        public Employee(int id, String name, int phone) {
            this.id = id;
            this.name = name;
            this.phone = phone;
        }    
    // Getter Setter

        @Override
        public boolean equals(Object obj) {

            if (obj == null) {
                return false;
            }
            if (getClass() != obj.getClass()) {
                return false;
            }
            final Employee other = (Employee) obj;
            System.out.println("Employee -  equals" …
Run Code Online (Sandbox Code Playgroud)

java hashmap

2
推荐指数
1
解决办法
2万
查看次数