Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery关于使用数组聚焦模糊_Jquery_Arrays - Fatal编程技术网

jQuery关于使用数组聚焦模糊

jQuery关于使用数组聚焦模糊,jquery,arrays,Jquery,Arrays,**这不是任何IE9占位符问题的重复。原因是,我使用的旧JSP框架WebWork不支持HTML中的占位符** 我想做什么 我想将字段中的值显示为占位符文本。但是如果用户开始键入,占位符文本应该消失 问题 如果我键入内容并单击“外部”,我键入的内容将替换为占位符文本。我想阻止它被替换。如果输入为空,则显示占位符文本;如果输入有值,则不替换文本 限制 由于某些技术原因,我也不能使用占位符属性。(旧框架和需要支持IE9) 希望你们能帮忙 var inputTextIDs = [ [".hote

**这不是任何IE9占位符问题的重复。原因是,我使用的旧JSP框架WebWork不支持HTML中的占位符**

我想做什么

我想将字段中的值显示为
占位符
文本。但是如果用户开始键入,占位符文本应该消失

问题

如果我键入内容并单击“外部”,我键入的内容将替换为占位符文本。我想阻止它被替换。如果输入为空,则显示占位符文本;如果输入有值,则不替换文本

限制

由于某些技术原因,我也不能使用占位符属性。(旧框架和需要支持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)键入一些内容,然后在输入字段内单击。这将清除输入堆。这太神奇了。但对于密码字段,这将显示***,而不是文本“密码”。。有可能修复吗?如果类型为
密码
,则不可能。是的,可以编写一些工作和代码行来进行调整,并使其以某种方式工作,但前提是它确实值得。否则,我建议不要这样做,因为它可能不支持所有浏览器。谢谢。这太神奇了。但对于密码字段,这将显示***,而不是文本“密码”。。是否有可能修复所有?我已经更新了答案,使其工作的密码以及。谢谢。但当我单击密码输入字段时,它将其
类型
更改为文本。然后,当我点击外部时,它又变成了密码,你可以再次编写代码片段。当您单击密码输入字段时,它将保留为密码字段。当在其外部单击“检查值”时,如果该值不存在占位符,则它将保留为密码类型,否则它将更改为文本类型。你可以查一下