简体   繁体   中英

Radio button not changing background color HTML/CSS

I'm trying to change the background color using radio buttons. The javascript function seems to not be working. I already read through the other questions written here, none of those answers seemed to work.

Here's the HTML code:

 <form action="">

    <input type="radio" name="color" value="radio"  onchange= "bgColor('colorR')">Red
    <input type="radio" name="color"  value="radio" onchange= "bgColor('colorG')"> Green
    <input type="radio" name="color"  value="radio" onchange= "bgColor('colorP')"> Purple
    <input type="radio" name="color"  value="radio" onchange= "bgColor('colorD')"> Default

</form>

Here's the Javascript:

 <script>

  function bgColor(col){

switch(col){

    case 'colorR':
        document.body.style.backgroundColor  = "red";
        break;

    case 'colorG':
         document.body.style.backgroundColor  = "green";
         break;

    case 'colorP'
          document.body.style.backgroundColor  = "purple";
          break;

    case 'colorD'
          document.body.style.backgroundColor  = "#d0e4fe";
          break;


     }
 }

 </script>

Here's the CSS code for when the page first launches:

 body {
     background-color: #d0e4fe;
 }

Your code is not working because your function name is bgColor i have renamed it to bgcolor and you also missing semi-colon after case 'colorP' and case 'colorD' and now its working fine. Try this

 <form action="">
  <input type="radio" name="color" value="radio"  onchange= "bgcolor('colorR')"> Red
  <input type="radio" name="color"  value="radio" onchange= "bgcolor('colorG')"> Green
  <input type="radio" name="color"  value="radio" onchange= "bgcolor('colorP')"> Purple
  <input type="radio" name="color"  value="radio" onchange= "bgcolor('colorD')"> Default
</form>

JavaScript function

 <script>
  function bgcolor(col){
    switch(col){
      case 'colorR':
        document.body.style.backgroundColor  = "red";
        break;
      case 'colorG':
        document.body.style.backgroundColor  = "green";
        break;
      case 'colorP' :
        document.body.style.backgroundColor  = "purple";
        break;
      case 'colorD':
        document.body.style.backgroundColor  = "#d0e4fe";
        break;
    }
 };
</script>

and css

 body {
   background-color: #d0e4fe;
 }

 $('input:radio').click(function() { var color = $(this).val(); $('body').css("background-color", color); }); 
  body { background-color: #d0e4fe; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form action=""> <input type="radio" name="color" value="red">Red <input type="radio" name="color" value="green">Green <input type="radio" name="color" value="purple">Purple <input type="radio" name="color" value="#d0e4fe">Default </form> 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM