Javascript 如何使用星号创建jquery提示密码
例如:Javascript 如何使用星号创建jquery提示密码,javascript,jquery,Javascript,Jquery,例如: 目前,密码不是星号,因为密码文本字段的“type”必须是type=“text”,因此不能将其更改为type=“password”,如果我想要星号,这是必需的。如何让jquery提示和星号一起工作您可以利用新的HTML5属性,称为占位符。不需要Javascript <input type="password" name="password" placeholder="Enter password" size="20" /> 演示:您可以利用名为占位符的新HTML5属性。不
目前,密码不是星号,因为密码文本字段的“type”必须是type=“text”,因此不能将其更改为type=“password”,如果我想要星号,这是必需的。如何让jquery提示和星号一起工作您可以利用新的HTML5属性,称为
占位符
。不需要Javascript
<input type="password" name="password" placeholder="Enter password" size="20" />
演示:您可以利用名为
占位符的新HTML5属性。不需要Javascript
<input type="password" name="password" placeholder="Enter password" size="20" />
演示:看看这个GitHub页面。我想这就是你想要的
请查看此GitHub页面。我想这就是你想要的
这是暗示的糟糕实现。首先,如果有人提交了一个空表单,那么他们实际上会提交“用户名”和“密码”作为参数,并且在服务器端过滤这些参数会很烦人
最好只使用占位符
属性:
编辑:
如果您需要它来支持不支持html5占位符属性的旧浏览器,您可以添加这个js:,这是一个糟糕的暗示实现。首先,如果有人提交了一个空表单,那么他们实际上会提交“用户名”和“密码”作为参数,并且在服务器端过滤这些参数会很烦人
最好只使用占位符
属性:
编辑:
如果您需要它来支持不支持html5占位符属性的旧浏览器,您可以添加这个js:如果您不想使用html5占位符,您可以使用“常规”JavaScript:input.type='password'
更改输入的类型。看看。如果您不想使用HTML5占位符,可以使用“常规”JavaScript更改输入类型:input.type='password'
。查看。使用占位符属性。当然,这在IE中不起作用,有很多解决方案可以克服IE缺乏支持的问题。其中大多数都不是很好,尤其是那些更改输入元素值以完成占位符文本的操作。这种方法有缺陷,并且存在可访问性问题
更好的方法是使用不修改输入值的技术。它应该能够自动处理已经使用了占位符
属性的表单,而不需要对标记进行其他更改。我使用的技术是在输入后面放置一个标签,以便通过输入显示。当输入具有焦点或值时,它将获得背景色以隐藏占位符标签
首先,我检查浏览器是否本机支持占位符
。此代码告诉我们是否支持占位符:
if (!("placeholder" in document.createElement("input"))) {
// placeholder is not natively supported
}
如果不支持占位符
,我会在每个具有占位符
属性的
之前插入一个绝对定位的
,并向输入中添加一个noplaceholder
类,指示占位符本机不受支持,标签应该通过输入显示。我使用CSS来设置标签的样式以匹配输入,并降低输入的不透明度,以便标签显示出来。剩下的只是非常简单的事件处理,根据输入是否有焦点和/或值来添加或删除noplaceholder
类
这是我的密码。将以下CSS和JavaScript放到使用占位符属性的现有页面中,它应该可以工作。CSS可能需要稍加调整才能在页面上正常工作
演示:
CSS:
输入[placeholder],.placeholder{
字体系列:无衬线;
边框:1px实心#b2b2b2;
边界半径:3px;
填充物:2px4px;
垂直对齐:中间对齐;
字号:1em;
线高:1米;
}
.placeholder+输入[placeholder].noplaceholder{
过滤器:α(不透明度=100);
背景色:#fff;
边框颜色:#b2b2b2;
}
.占位符+输入[占位符]{
位置:相对位置;
过滤器:α(不透明度=50);
边框颜色:#666;
}
.placeholder,label.placeholder{
边框颜色:#fff;
位置:绝对位置;
页边顶部:1px;
左边距:0;
顶部:自动;
}
JavaScript:
if (!("placeholder" in document.createElement("input"))) {
$(function() {
$("input[placeholder]").each(function() {
$("<label>")
.attr("for", this.id)
.addClass("placeholder")
.text(this.getAttribute("placeholder"))
.insertBefore(this);
$(this).addClass("noplaceholder");
}).on("keydown focus input", function() {
$(this).addClass("noplaceholder");
}).on("change blur", function() {
if (!this.value) {
$(this).removeClass("noplaceholder");
}
}).change();
$("form").on("reset", function() {
setTimeout(function() {
$("input[placeholder]:not(:focus)").change();
}, 0);
});
});
}
if(!(.createElement(“输入”)中的占位符){
$(函数(){
$(“输入[占位符]”)。每个(函数(){
$("")
.attr(“for”,this.id)
.addClass(“占位符”)
.text(此.getAttribute(“占位符”))
.在此之前插入;
$(此).addClass(“noplaceholder”);
}).on(“按键下焦点输入”,函数(){
$(此).addClass(“noplaceholder”);
}).on(“更改模糊”,函数(){
如果(!this.value){
$(此).removeClass(“noplaceholder”);
}
}).change();
$(“形式”)。在(“重置”,函数()上{
setTimeout(函数(){
$(“输入[占位符]:非(:焦点)”).change();
}, 0);
});
});
}
使用占位符属性。当然,这在IE中不起作用,有很多解决方案可以克服IE缺乏支持的问题。其中大多数都不是很好,尤其是那些更改输入元素值以完成占位符文本的操作。这种方法有缺陷,并且存在可访问性问题
更好的方法是使用不修改输入值的技术。它应该能够自动处理已经使用了占位符
属性的表单,而不需要对标记进行其他更改。我使用的技术是在输入后面放置一个标签,以便通过输入显示。当输入具有焦点或值时,它将获得背景色以隐藏占位符标签