jQuery关于使用数组聚焦模糊
**这不是任何IE9占位符问题的重复。原因是,我使用的旧JSP框架WebWork不支持HTML中的占位符** 我想做什么 我想将字段中的值显示为jQuery关于使用数组聚焦模糊,jquery,arrays,Jquery,Arrays,**这不是任何IE9占位符问题的重复。原因是,我使用的旧JSP框架WebWork不支持HTML中的占位符** 我想做什么 我想将字段中的值显示为占位符文本。但是如果用户开始键入,占位符文本应该消失 问题 如果我键入内容并单击“外部”,我键入的内容将替换为占位符文本。我想阻止它被替换。如果输入为空,则显示占位符文本;如果输入有值,则不替换文本 限制 由于某些技术原因,我也不能使用占位符属性。(旧框架和需要支持IE9) 希望你们能帮忙 var inputTextIDs = [ [".hote
占位符
文本。但是如果用户开始键入,占位符文本应该消失
问题
如果我键入内容并单击“外部”,我键入的内容将替换为占位符文本。我想阻止它被替换。如果输入为空,则显示占位符文本;如果输入有值,则不替换文本
限制
由于某些技术原因,我也不能使用占位符属性。(旧框架和需要支持IE9)
希望你们能帮忙
var inputTextIDs = [
[".hotelLocaiton", "Location"],
["#agentTransfersSearchForm_filter_transfersName", "Location2"]
];
$.each(inputTextIDs, function(i, v) {
//$('input'+inputTextIDs[i][0]).val(inputTextIDs[i][1]);
$('input' + inputTextIDs[i][0]).on('change', function() {
var inputValue = $.trim($('input' + inputTextIDs[i][0]).val());
$('input' + inputTextIDs[i][0]).val(inputTextIDs[i][1]);
$('input' + inputTextIDs[i][0]).on('focus', function() {
$('input' + inputTextIDs[i][0]).val('');
}).on('blur', function() {
$('input' + inputTextIDs[i][0]).val(inputTextIDs[i][1]);
});
});
});
var inputTextIDs=[
[“.hotelLocaiton”,“Location”],
[“#代理传输搜索表单_过滤器_传输名称”,“位置2”]
];
$。每个(inputExtID,函数(i,v){
$('input'+InputTextId[i][0])。在('focus',function()上{
if($('input'+inputTextIDs[i][0]).val()==inputTextIDs[i][1]){
$('input'+inputTextIDs[i][0]).val('';
}
}).on('blur',function(){
if(!$('input'+inputExtId[i][0]).val(){
$('input'+inputTextIDs[i][0]).val(inputTextIDs[i][1]);
}
});
$('input'+inputTextIDs[i][0]).val(inputTextIDs[i][1]);
});代码>
您可以使用focusin
和focusout
:
var inputTextIDs=[
[“.hotelLocaiton”,“Location”],
[“#代理传输搜索表单_过滤器_传输名称”,“位置2”]
];
$。每个(inputExtID,函数(i,v){
$(v[0]).val(v[1]).focusin(函数(){
if($(this).val()==v[1]){
$(this.val(“”);
}
}).focusout(函数(){
if($(this.val()=''){
$(this.val(v[1]);
}
})
});代码>
您可以完全按照自己的意愿进行尝试,它也适用于密码字段
var inputTextIDs=[
[“.hotelLocaiton”,“Location”],
[“#代理传输搜索表单_过滤器_传输名称”,“位置2”]
];
$。每个(inputExtID,函数(i,v){
var占位符值=InputTextId[i][1];
$('input'+inputTextIDs[i][0]).val(占位符值);
if($('input'+inputTextIDs[i][0]).attr(“type”)=“password”){
$('input'+inputTextIDs[i][0]).attr(“原始类型”、“密码”);
$('input'+inputTextIDs[i][0]).attr(“type”,“text”);
}
$('input'+InputTextId[i][0])。在('change',function(){
如果($(this).val().trim()==“”){
$(this).val(占位符值);
if($(this.attr(“type”)=“password”){
$(this.attr(“type”,“text”);
}
}
否则{
if($(this.attr(“原始类型”)=“密码”){
$(this.attr(“type”,“password”);
}
}
});
$('input'+InputTextId[i][0])。在('focus',function()上{
if($(this).val().trim()==占位符值){
$(this.val(“”);
if($(this.attr(“原始类型”)=“密码”){
$(this.attr(“type”,“password”);
}
}
}).on('blur',function(){
如果($(this).val().trim()==“”){
$(this).val(占位符值);
if($(this.attr(“type”)=“password”){
$(this.attr(“type”,“text”);
}
}
});
});代码>
@您到底需要实现什么?我想在字段中显示占位符,但如果您键入了某个内容,它不会用placeholder@nasty所以,初始输入字段将带有占位符,然后如果您写入某个内容,它将删除占位符值,依此类推,对吗?让我们来。我不认为我们不能停止在打字时替换占位符@你可以根据自己的意愿检查我的答案。也有可能是:和其他许多答案的副本。@freedomn-m不,这不是一个副本。我不能使用那个占位符插件,因为我使用的是WebWork,一个旧的JSP框架,而且这个插件很复杂。当我键入消息后点击输入字段时,它仍然会清除文本。因此,1)键入一些内容,然后在输入字段内单击。这将清除输入堆。这太神奇了。但对于密码字段,这将显示***,而不是文本“密码”。。有可能修复吗?如果类型为密码
,则不可能。是的,可以编写一些工作和代码行来进行调整,并使其以某种方式工作,但前提是它确实值得。否则,我建议不要这样做,因为它可能不支持所有浏览器。谢谢。这太神奇了。但对于密码字段,这将显示***,而不是文本“密码”。。是否有可能修复所有?我已经更新了答案,使其工作的密码以及。谢谢。但当我单击密码输入字段时,它将其类型
更改为文本。然后,当我点击外部时,它又变成了密码,你可以再次编写代码片段。当您单击密码输入字段时,它将保留为密码字段。当在其外部单击“检查值”时,如果该值不存在占位符,则它将保留为密码类型,否则它将更改为文本类型。你可以查一下