Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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
Javascript 更改所有只包含一个“0”的输入字段的样式;1“;_Javascript_Jquery_Css - Fatal编程技术网

Javascript 更改所有只包含一个“0”的输入字段的样式;1“;

Javascript 更改所有只包含一个“0”的输入字段的样式;1“;,javascript,jquery,css,Javascript,Jquery,Css,我在我的网站上使用了一种风格,它有一个缺点:数字“1”看起来像一个大的“I”和一个小的“L” 如何使用javascript动态更改仅包含数字“1”作为值的所有输入字段的字体样式,而不必更改该站点上的所有表单 (无论如何,我在那个网站上经常使用jquery) 或者使用CSS3?只需更改用于所有输入框的字体系列。您不希望字段之间存在差异,这看起来很奇怪,只需更改用于所有输入框的字体系列即可。您不希望字段之间存在差异,这看起来很奇怪 $(function(){ $.each($('input'

我在我的网站上使用了一种风格,它有一个缺点:数字“1”看起来像一个大的“I”和一个小的“L”

如何使用javascript动态更改仅包含数字“1”作为值的所有输入字段的字体样式,而不必更改该站点上的所有表单

(无论如何,我在那个网站上经常使用jquery)


或者使用CSS3?

只需更改用于所有输入框的字体系列。您不希望字段之间存在差异,这看起来很奇怪,只需更改用于所有输入框的字体系列即可。您不希望字段之间存在差异,这看起来很奇怪

$(function(){
    $.each($('input'),function(){
    if($(this).val() == '1'){
     $(this).css('color','red');
    }
    });
    });

尝试值过滤器:

$('input[value=1]')
尝试值过滤器:

$('input[value=1]')
试试这个

$('input:text [value="1"]').css('font-family','Arial')
试试这个

$('input:text [value="1"]').css('font-family','Arial')

如果我理解您的意思是正确的,那么每次输入字段的值包含1时,您都希望使用不同的字体

这将适用于值“1”和“abc de 1 fg”

JS

$('input[value*="1"]').css({'font-family':'Helvetica','color':'#990000'});
$('input[value="1"]').css({'font-family':'Helvetica','color':'#990000'});
.different {
    font-family:'Helvetica';
    color:#990000;
}
$('input').on('keyup',function() {
    if($(this).val().indexOf('1') != -1) {
        if(!$(this).hasClass('different')) {
            $(this).addClass('different');
        }
    } else {
        $(this).removeClass('different');
    }
}).trigger('keyup');
在这里查看:

要使其特定于值1,只需删除选择器中的*即可

JS

$('input[value*="1"]').css({'font-family':'Helvetica','color':'#990000'});
$('input[value="1"]').css({'font-family':'Helvetica','color':'#990000'});
.different {
    font-family:'Helvetica';
    color:#990000;
}
$('input').on('keyup',function() {
    if($(this).val().indexOf('1') != -1) {
        if(!$(this).hasClass('different')) {
            $(this).addClass('different');
        }
    } else {
        $(this).removeClass('different');
    }
}).trigger('keyup');
要使其在键入时发生更改,您可以使用以下函数,它也将更改回其正常状态

HTML

<input type="text" name="test1" value="1" />
<input type="text" name="test2" value="2" />
<input type="text" name="test3" value="3" />
<input type="text" name="test4" value="abc 1 def" />
JS

$('input[value*="1"]').css({'font-family':'Helvetica','color':'#990000'});
$('input[value="1"]').css({'font-family':'Helvetica','color':'#990000'});
.different {
    font-family:'Helvetica';
    color:#990000;
}
$('input').on('keyup',function() {
    if($(this).val().indexOf('1') != -1) {
        if(!$(this).hasClass('different')) {
            $(this).addClass('different');
        }
    } else {
        $(this).removeClass('different');
    }
}).trigger('keyup');

查看小提琴

如果我理解您的意思是正确的,那么每次输入字段的值包含1时,您都希望使用不同的字体

这将适用于值“1”和“abc de 1 fg”

JS

$('input[value*="1"]').css({'font-family':'Helvetica','color':'#990000'});
$('input[value="1"]').css({'font-family':'Helvetica','color':'#990000'});
.different {
    font-family:'Helvetica';
    color:#990000;
}
$('input').on('keyup',function() {
    if($(this).val().indexOf('1') != -1) {
        if(!$(this).hasClass('different')) {
            $(this).addClass('different');
        }
    } else {
        $(this).removeClass('different');
    }
}).trigger('keyup');
在这里查看:

要使其特定于值1,只需删除选择器中的*即可

JS

$('input[value*="1"]').css({'font-family':'Helvetica','color':'#990000'});
$('input[value="1"]').css({'font-family':'Helvetica','color':'#990000'});
.different {
    font-family:'Helvetica';
    color:#990000;
}
$('input').on('keyup',function() {
    if($(this).val().indexOf('1') != -1) {
        if(!$(this).hasClass('different')) {
            $(this).addClass('different');
        }
    } else {
        $(this).removeClass('different');
    }
}).trigger('keyup');
要使其在键入时发生更改,您可以使用以下函数,它也将更改回其正常状态

HTML

<input type="text" name="test1" value="1" />
<input type="text" name="test2" value="2" />
<input type="text" name="test3" value="3" />
<input type="text" name="test4" value="abc 1 def" />
JS

$('input[value*="1"]').css({'font-family':'Helvetica','color':'#990000'});
$('input[value="1"]').css({'font-family':'Helvetica','color':'#990000'});
.different {
    font-family:'Helvetica';
    color:#990000;
}
$('input').on('keyup',function() {
    if($(this).val().indexOf('1') != -1) {
        if(!$(this).hasClass('different')) {
            $(this).addClass('different');
        }
    } else {
        $(this).removeClass('different');
    }
}).trigger('keyup');

在fiddle上查看,在页面底部附加以下代码,您将能够更改所有现有输入的样式,并观察它们是否有任何更改。如果
1
将出现在任何输入中,则会将
someclass
添加到该元素中。如果
1
将被删除,则类也将被删除

function onCharacter1Found() {
  var field = $(this),
      classname = "someclass",
      containsChar_1 = field.val().indexOf(1) > 1;
  if(containsChar_1) { 
    field.addClass(classname);
  } else {
    field.removeClass(classname);
  }
};

// update all existing inputs on the page
$("input").each(onCharacter1Found);

// watch for changes
$("input").bind("input", onCharacter1Found);

通过在页面底部附加以下代码,您将能够更改所有现有输入的样式,并观察它们是否有任何更改。如果
1
将出现在任何输入中,则会将
someclass
添加到该元素中。如果
1
将被删除,则类也将被删除

function onCharacter1Found() {
  var field = $(this),
      classname = "someclass",
      containsChar_1 = field.val().indexOf(1) > 1;
  if(containsChar_1) { 
    field.addClass(classname);
  } else {
    field.removeClass(classname);
  }
};

// update all existing inputs on the page
$("input").each(onCharacter1Found);

// watch for changes
$("input").bind("input", onCharacter1Found);

我写了我的评论“你是否打算随着价值观的改变而前后改变风格”,作为一个反问句来说明这种方法的笨拙,但如果这真的是你想要的,那当然

首先,您需要确保在DOMReady和每次更改输入时都设置一次样式

$(function() { 
    $(':text')
        .each(setInputStyle)
        .change(setInputStyle);
});
然后,您需要确保
setInputStyle
检查您想要检查的内容。我不确定您是要更改所有包含
1
的输入,还是只更改正好为1的输入。您将使用以下检查之一:

  • 包含:

    var inputValue1 = this.value.indexOf('1') >= 0;
    
  • 完全匹配

    var inputValue1 = this.value == '1';
    
  • 或者,“只包含一个”:

无论您寻找什么,您都会将其合并到函数中,如下所示:

function setInputStyle() {
    var inputValue1 = this.value == '1'; // or something else
    $(this).toggleClass('input-value-1', inputValue1);
}
现在您只需要确保有一个名为
input-value-1
的CSS类覆盖默认样式

.input-value-1 { font-family: verdana; }

我写下了我的评论“你是否打算随着价值观的改变而前后改变风格”,作为一个反问句来说明这种方法的笨拙,但如果这真的是你想要的,那当然

首先,您需要确保在DOMReady和每次更改输入时都设置一次样式

$(function() { 
    $(':text')
        .each(setInputStyle)
        .change(setInputStyle);
});
然后,您需要确保
setInputStyle
检查您想要检查的内容。我不确定您是要更改所有包含
1
的输入,还是只更改正好为1的输入。您将使用以下检查之一:

  • 包含:

    var inputValue1 = this.value.indexOf('1') >= 0;
    
  • 完全匹配

    var inputValue1 = this.value == '1';
    
  • 或者,“只包含一个”:

无论您寻找什么,您都会将其合并到函数中,如下所示:

function setInputStyle() {
    var inputValue1 = this.value == '1'; // or something else
    $(this).toggleClass('input-value-1', inputValue1);
}
现在您只需要确保有一个名为
input-value-1
的CSS类覆盖默认样式

.input-value-1 { font-family: verdana; }

您是否希望样式在值更改时来回更改?使用$('input:text').css('font-family','');它会成功的。@DavidHedlund:那太好了!添加了一个向后更改的版本您是否希望样式在值更改时前后更改?使用$('input:text').css('font-family','');它会成功的。@DavidHedlund:那太好了!添加了一个版本,里面的改动太多了,网站真的很大。大多数人都需要这种风格!有太多了,网站真的很大。大多数人都需要这种风格!