2017-06-03 54 views
0

我想当我改变#town#animal的值,那么输入背景就会变红。 我的代码是改变输入背景,当我改变一个输入,但我想,如果我改变这两个输入,代码后将改变背景颜色。jQuery改变方法多个元素

我的代码:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Test page</title> 

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 

    <script> 
    $(document).ready(function() { 
     $('#town, #animal').on('change', function() { 
      $('input').css('background', 'red'); 
     }); 
    }); 
    </script> 
</head> 
<body> 

<input type="text" id="town"> 
<input type="text" id="animal"> 

</body> 
</html> 
+0

“您想将文本输入颜色更改为红色onChange”我收到了您的问题的第一部分,我认为。第二部分更难阅读。也许你只是想改变颜色,如果两个输入都改变了? – Dominik

回答

0

你可以试试这个Working Fiddle

$('#town, #animal').on('change', function() { 
    if($.trim($('#town').val())!='' && $.trim($('#animal').val())!=''){ 
     $('input').css('background', 'red'); 
    } 
}); 
+0

谢谢,完美! :) – patesz

0

如果你想,这样你要等到两个输入已经改变,那么这很简单! :)

简单地说,有两个变量:

var townChanged = false; 
var animalChanged = false; 

然后,做两个jQuery函数:

$('#town').on('change', function() { 
    townChanged = true; 
    if (animalChanged) { 
     $('input').css('background', 'red'); 
    } 
}); 

$('#animal').on('change', function() { 
    animalChanged = true; 
    if (townChanged) { 
     $('input').css('background', 'red'); 
    } 
}); 

很明显,你会希望把它清理干净了一点,但我希望这是一个良好的开端,你