javascript - updating the text when checkbox is clicked - Stack Overflow

I have a scenario where selecting a checkbox for Testing sample switches the radio button to option A a

I have a scenario where selecting a checkbox for Testing sample switches the radio button to option A and unchecking the checked checkbox switches back the radio button to option B as shown in the code snippet below. By default, option B is selected.

My question: When Testing Sample checkbox is checked, in addition to switching the option to A from B (which is already happening in the code below), I want to update the text of html as well from A. Some text goes here to the one defined in the variable choiceAHtml. However, I'm little confused here as I'm dealing with the table cell element so how should I select this part of table <td> A. Some text goes here</td> in order to update the text dynamically using jQuery or javascript?

let choiceAHtml = "A. text that needs to be there when Testing Sample checkbox is checked"

$("[name='testingOptionSpring']").click(function () {
    if ($("[name='testingOptionSpring']").is(":checked")) {
      console.log("Checkbox is checked so uncheck Samplechoice2 and check sampleChoice1");
      $('#sampleChoice2').prop('checked',false);
      $('#sampleChoice1').prop('checked',true);

      $("input[name='sampleChoice']").each(function(){
        
        console.log(this.value + ":" +this.checked);

      })
      //
    } else {
        console.log("Checkbox is NOT checked so uncheck Samplechoice1 and check sampleChoice2");
        $('#sampleChoice2').prop('checked',true);
        $('#sampleChoice1').prop('checked',false);
    }
  });
<script src=".7.1/jquery.min.js"></script>
<td colspan="2">
        <table border="0" cellpadding="5" cellspacing="5" align="center">

            <tbody><tr>
                <td colspan="2"><span class="headerInstructions">1. <b>SAMPLE
                            CHOICE:</b>
                </span></td>
            </tr>
            <tr>
                <td valign="top"><input id="sampleChoice1" name="sampleChoice" onchange="handleSampleChoice()" type="radio" value="choiceA"></td>
                <td> A. Some text goes here</td>
            </tr>
            <tr>
                <td valign="top"><input id="sampleChoice2" name="sampleChoice" onchange="handleSampleChoice()" type="radio" value="choiceB" checked="checked"></td>
                <td><span class="headerInstructionsBlue">B.Some other text goes here</td>
            </tr>
            <tr>
                <td colspan="2"><span class="headerInstructions">2. <b>MAIL</b>
                        the  form </td>
            </tr>
        </tbody></table>
    </td>
  
  <td colspan="2">
        <table border="0" cellpadding="5" cellspacing="5" align="center">
            <tbody><tr>
                <td><b>Testing Sample.</td>
            </tr>
            <tr>
                <td>
                        
                        
                            <input id="testingOptionSpring1" name="testingOptionSpring" type="checkbox" value="true"><input type="hidden" name="_testingOptionSpring" value="on">
                        
                     <span class="instructionsSmaller">Testing Sample </span></td>
            </tr>
            
        </tbody></table>
    </td>

I have a scenario where selecting a checkbox for Testing sample switches the radio button to option A and unchecking the checked checkbox switches back the radio button to option B as shown in the code snippet below. By default, option B is selected.

My question: When Testing Sample checkbox is checked, in addition to switching the option to A from B (which is already happening in the code below), I want to update the text of html as well from A. Some text goes here to the one defined in the variable choiceAHtml. However, I'm little confused here as I'm dealing with the table cell element so how should I select this part of table <td> A. Some text goes here</td> in order to update the text dynamically using jQuery or javascript?

let choiceAHtml = "A. text that needs to be there when Testing Sample checkbox is checked"

$("[name='testingOptionSpring']").click(function () {
    if ($("[name='testingOptionSpring']").is(":checked")) {
      console.log("Checkbox is checked so uncheck Samplechoice2 and check sampleChoice1");
      $('#sampleChoice2').prop('checked',false);
      $('#sampleChoice1').prop('checked',true);

      $("input[name='sampleChoice']").each(function(){
        
        console.log(this.value + ":" +this.checked);

      })
      //
    } else {
        console.log("Checkbox is NOT checked so uncheck Samplechoice1 and check sampleChoice2");
        $('#sampleChoice2').prop('checked',true);
        $('#sampleChoice1').prop('checked',false);
    }
  });
<script src="https://cdnjs.cloudflare/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<td colspan="2">
        <table border="0" cellpadding="5" cellspacing="5" align="center">

            <tbody><tr>
                <td colspan="2"><span class="headerInstructions">1. <b>SAMPLE
                            CHOICE:</b>
                </span></td>
            </tr>
            <tr>
                <td valign="top"><input id="sampleChoice1" name="sampleChoice" onchange="handleSampleChoice()" type="radio" value="choiceA"></td>
                <td> A. Some text goes here</td>
            </tr>
            <tr>
                <td valign="top"><input id="sampleChoice2" name="sampleChoice" onchange="handleSampleChoice()" type="radio" value="choiceB" checked="checked"></td>
                <td><span class="headerInstructionsBlue">B.Some other text goes here</td>
            </tr>
            <tr>
                <td colspan="2"><span class="headerInstructions">2. <b>MAIL</b>
                        the  form </td>
            </tr>
        </tbody></table>
    </td>
  
  <td colspan="2">
        <table border="0" cellpadding="5" cellspacing="5" align="center">
            <tbody><tr>
                <td><b>Testing Sample.</td>
            </tr>
            <tr>
                <td>
                        
                        
                            <input id="testingOptionSpring1" name="testingOptionSpring" type="checkbox" value="true"><input type="hidden" name="_testingOptionSpring" value="on">
                        
                     <span class="instructionsSmaller">Testing Sample </span></td>
            </tr>
            
        </tbody></table>
    </td>

Share Improve this question asked Mar 24 at 21:14 TanTan 1,5838 gold badges28 silver badges63 bronze badges 2
  • 1 Fix your html. Also, the checkbox change event should be change and not click – imhvost Commented Mar 24 at 22:17
  • Go here before you post. – zer00ne Commented Mar 25 at 3:55
Add a comment  | 

1 Answer 1

Reset to default 0

You can add a span with a selector, which you can use to select the element you want to change text to.

Pro tip: Use labels for checkboxes and radio buttons for better usability.

let choiceAHtml = "A. text that needs to be there when Testing Sample checkbox is checked"

$("[name='testingOptionSpring']").click(function() {

  // here, or inside one of the conditions below:
  changeTextForOption();

  if ($("[name='testingOptionSpring']").is(":checked")) {
    console.log("Checkbox is checked so uncheck Samplechoice2 and check sampleChoice1");
    $('#sampleChoice2').prop('checked', false);
    $('#sampleChoice1').prop('checked', true);

    $("input[name='sampleChoice']").each(function() {

      console.log(this.value + ":" + this.checked);

    })

  } else {
    console.log("Checkbox is NOT checked so uncheck Samplechoice1 and check sampleChoice2");
    $('#sampleChoice2').prop('checked', true);
    $('#sampleChoice1').prop('checked', false);
  }
});

function handleSampleChoice() {
  // dummy
}

function changeTextForOption() {
  $(".text-a").text(choiceAHtml)
}
label {
  display: block
}
<script src="https://cdnjs.cloudflare/ajax/libs/jquery/3.7.1/jquery.min.js"></script>


<span class="headerInstructions">1. <b>SAMPLE CHOICE:</b></span>

<label>
    <input id="sampleChoice1" name="sampleChoice" onchange="handleSampleChoice()" type="radio" value="choiceA">
    <span class="text-a">A. Some text goes here</span>
</label>

<label>
    <input id="sampleChoice2" name="sampleChoice" onchange="handleSampleChoice()" type="radio" value="choiceB" checked="checked">
    B. Some other text goes here
</label>


<span class="headerInstructions">2. <b>MAIL</b> the form </span>

<hr>



<b>Testing Sample.</b>
<br>

<label>
    <input id="testingOptionSpring1" name="testingOptionSpring" type="checkbox" value="true"><input type="hidden" name="_testingOptionSpring" value="on">
    <span class="instructionsSmaller">Testing Sample </span>
</label>

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744228153a4564111.html

相关推荐

  • javascript - updating the text when checkbox is clicked - Stack Overflow

    I have a scenario where selecting a checkbox for Testing sample switches the radio button to option A a

    8天前
    10

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信