javascript – 单选按钮更改为非初始状态未注册

我一直在尝试工作,我确信这是一个简单,直接的解决方案,可以跟踪状态变化的无线电按钮组.这是一个这样的组:

<div class="formRowDiv">
      <label><span>TLan:</span></label>
        <label>
          <input type="radio" id="tlanYes" name="tlan" value="tlanYes"
            <?php
              if ( $inputValArr[ 'tl' ] == "1" ) {
                echo ' checked';
              }   
            ?>
          >
          <span class="radioLabel">Yes</span>
        </label>
        <label>
          <input type="radio" id="tlanNo" name="tlan" value="tlanNo"
            <?php
              if ( $inputValArr[ 'tl' ] == "0" ) {
                echo ' checked';
              }   
            ?>
          >
          <span class="radioLabel">No</span>
        </label>
      <script>
        $(document).ready(function() {
          $("input:radio[name='tlan']:checked").change(function() {
            if ($("input[name='tlan']:checked").val()=='tlanNo') {
              alert( 'tlan: No' );
            } else if ($("input[name='tlan']:checked").val()=='tlanYes') {
              alert( 'tlan: Yes' );
            } // close IF
          }); // close anon FUNC .change
        }); // close anon FUNC doc.ready
      </script>
    </div><!-- close formRowDiv -->

表单的输入值最初是通过从mySql query()中检索它们来确定的.

如果mySql查询最初设置的值为0,因此“No”(value =“tlanNo”),那么当用户单击以将字段更改为“是”时,警报将无法触发,当我查看页面的来源是仍然选中的“否”按钮.

当选择“否”按钮时,从先前选择的“是”改变,然后警报触发,页面源显示它(仍然是?)被检查的“否”按钮.

我想最终将按钮的更改状态保存到页面的$_SESSION数组中.那么为什么非初始设置按钮值的更改不会注册,因此触发警报以及在更改完成后反映页面源的更改,但是更改“返回”到初始状态似乎要注册?

BTW:我确实有当前的jQuery lib位于html.php的目录中,并在页面的标题中引用,如下所示:

<script type="text/javascript"  src="jquery-3.2.0.min.js"></script> 

最佳答案 :checked选择器适用于复选框,单选按钮和选择元素的选项.

$("input:radio[name='tlan']").change(function() { ...

代替

 $("input:radio[name='tlan']:checked").change(function() { ...
点赞