性格悪い人が優勝

JavaScriptで、textareaに何も入力されていない状態だった場合、薄いグレーに、何か文字が入っている場合は白くしたいのですが、どうしてもわかりません。
ご親切な方、方法を教えて下さい。
よろしくお願いします。

A 回答 (5件)

#1です。

ふしんせつだっとことを、はんせいし・・・。
ぜんかくくうはくは、てきとうにはんかくにでもしてね。ばぶぅ~!
すくりぷとは、さいごにおいてね。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>test</title>

<p id="pp">
<input type="text" name="hoge" size="4">
<input type="text" name="hoge" size="4">
<input type="text" name="hoge" size="4">
<textarea name="hoge"></textarea>
</p>
<p id="qq">
<input type="text" name="hoge" size="4">
<input type="text" name="hoge" size="4">
<input type="text" name="hoge" size="4">
<textarea name="hoge"></textarea>
</p>

<script type="text/javascript">
//@cc_on

var AutoBGcolor = (function (createListener) {
 return function (target, bgc0, bgc1) {

  var listener = createListener(bgc0, bgc1);
  var inp, cnt, o;
  
  for(cnt = 0, inp = target.getElementsByTagName( 'INPUT' ); o = inp[cnt++]; )
   o.style.backgroundColor = ('' == o.value) ? bgc0: bgc1;
   
  for(cnt = 0, inp = target.getElementsByTagName( 'TEXTAREA' ); o = inp[cnt++]; )
   o.style.backgroundColor = ('' == o.value) ? bgc0: bgc1;

  target./*@if (@_jscript) attachEvent('on' + @else@*/ addEventListener(/*@end@*/
   /*@if (@_jscript) 'focusout' @else@*/ 'blur' /*@end@*/, listener, true);
  
 };
})(
 function (bgc0, bgc1) {
  return function (evt) {
   var e = evt./*@if (@_jscript) srcElement @else@*/ target /*@end@*/;
   if ( /INPUT|TEXTAREA/.test(e.nodeName) && ! /checkbox|radio/.test(e.type) ) {
    e.style.backgroundColor = ('' == e.value) ? bgc0: bgc1;
   }
  };
 });

AutoBGcolor(document.getElementById('pp'), '#eee','#fff');
AutoBGcolor(document.getElementById('qq'), '#fdd','#fff');
//AutoBGcolor(document, '#eee','#fff');//全体にならこれでもOK!?
</script>
    • good
    • 0
この回答へのお礼

これでやるとうまく行きました。
大変助かりました。
ありがとうございます。

お礼日時:2009/09/09 11:53

はやくも、みすった~!



<script type="text/javascript">
//@cc_on

var AutoBGcolor = (function (createListener) {
 return function (target, bgc0, bgc1) {

  var listener = createListener(bgc0, bgc1);
  var inp, cnt, o;
  
  for(cnt = 0, inp = target.getElementsByTagName( 'INPUT' ); o = inp[cnt++]; )
   if ( /INPUT|TEXTAREA/.test(o.nodeName) && ! /checkbox|radio/.test(o.type) )
    o.style.backgroundColor = ('' == o.value) ? bgc0: bgc1;
   
  for(cnt = 0, inp = target.getElementsByTagName( 'TEXTAREA' ); o = inp[cnt++]; )
   o.style.backgroundColor = ('' == o.value) ? bgc0: bgc1;

  target./*@if (@_jscript) attachEvent('on' + @else@*/ addEventListener(/*@end@*/
   /*@if (@_jscript) 'focusout' @else@*/ 'blur' /*@end@*/, listener, true);
  
 };
})(
 function (bgc0, bgc1) {
  return function (evt) {
   var e = evt./*@if (@_jscript) srcElement @else@*/ target /*@end@*/;
   if ( /INPUT|TEXTAREA/.test(e.nodeName) && ! /checkbox|radio/.test(e.type) ) {
    e.style.backgroundColor = ('' == e.value) ? bgc0: bgc1;
   }
  };
 });

AutoBGcolor(document.getElementById('pp'), '#eee','#fff');
AutoBGcolor(document.getElementById('qq'), '#fdd','#fff');
</script>

にっ!
    • good
    • 0

//@cc_on


がっ。^^;
    • good
    • 0

回答の盗作ですが、



<script type="text/javascript" charset="utf-8">
<!--
window.onload = function () {
document./*@if (1)attachEvent('on'+ @else@*/addEventListener(/*@end@*/'change', Handler, false);
function Handler (evt) {
var e = evt./*@if(1) srcElement @else@*/ target /*@end@*/;
if(e.nodeName=="TEXTAREA"){
if(e.value){
e.style.backgroundColor="#FFFFFF";
}else{
e.style.backgroundColor="#808080";
}
}
}
}
// -->
</script>

<textarea style="background-color: #808080;"></textarea>
    • good
    • 0

しんせつではありませんが


<textarea style="background-color:#eee" name="abc" onKeyup="this.style.backgroundColor=this.value ? '#fff':'#eee'"></textarea>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!