javascript - Jquery 未设置单选按钮

标签 javascript jquery asp.net

我试图在弹出控件的底部设置“设置所有”单选按钮,这样当用户有一长串需要解决的冲突时,他们只需选择其中一个单选按钮,该选项就会很快出现选择。但是,我的 JavaScript 触发了,似乎找到了单选按钮,但未能实际设置单选按钮。

我有一个正在循环的 gridview gvErrors,并且每个 gridview 行的第二个单元格中有一个包含选项的表(tblOptions)。我尝试过使用 .attr("checked", true).setAttribute("checked", true).prop("checked", true )。我在控制台中没有收到任何错误,但单选按钮均保持未选中状态。任何对此的帮助将不胜感激。下面是 JavaScript。

<script type="text/javascript" language="javascript">
    function selectAll(option) {
        var grid = document.getElementById("<%=gvErrors.ClientID%>");

        for (var i = 0; i < grid.rows.length; i++)
        {
            var row = grid.rows[i];
            var table =  $(row).find("tblOptions");
            var radio = $(table).find("input[name*=" + option + "]:radio");
            //$('td input:radiobutton', '#tblOptions').prop('checked', true);
            $(radio).prop("checked", "checked");
            var test = "";
        }
    };
</script>

<script type="text/javascript" language="javascript">
    $(document).ready(function () {
        //This handles the rows or colums selection          
        $("#<%=rdbCancelAll.ClientID%>").click(function() {
           selectAll("rdbCancel");
        });
    });
</script>

<script type="text/javascript" language="javascript">
    $(document).ready(function () {
        //This handles the rows or colums selection          
        $("#<%=rdbReplaceAll.ClientID%>").click(function() {
           selectAll("rdbReplace");
        });
    });
</script>

<script type="text/javascript" language="javascript">
    $(document).ready(function () {
        //This handles the rows or colums selection          
        $("#<%=rdbRenameAll.ClientID%>").click(function() {
           selectAll("rdbRename");
        });
    });
</script>

GridView 的小例子:

<table class="tableinfo nocollapse c6" cellspacing="1" cellpadding="2" border="0" id="ctl00_Main_gvErrors">
<tbody>
  <tr class="tableinfobody tableinfoGray">
    <th scope="col"><span class="c1">Current Name</span></th>

    <th scope="col"><span class="c1">Options</span></th>

    <th scope="col">Differences</th>
  </tr>

  <tr class="tableinfobody">
    <td class="l"><span id="ctl00_Main_gvErrors_ctl02_lblName">Test1</span></td>

    <td class="l">
      <table id="ctl00_Main_gvErrors_ctl02_tblOptions" border="0">
        <tbody>
          <tr>
            <td><input id="ctl00_Main_gvErrors_ctl02_rdbCancel" type="radio" name=
            "ctl00$Main$gvErrors$ctl02$Options" value="rdbCancel" /><label for=
            "ctl00_Main_gvErrors_ctl02_rdbCancel">Cancel adding signal.</label></td>
          </tr>

          <tr>
            <td><input id="ctl00_Main_gvErrors_ctl02_rdbReplace" type="radio" name=
            "ctl00$Main$gvErrors$ctl02$Options" value="rdbReplace" /><label for=
            "ctl00_Main_gvErrors_ctl02_rdbReplace">Replace curent signal with
            imported signal.</label></td>
          </tr>

          <tr>
            <td><input id="ctl00_Main_gvErrors_ctl02_rdbRename" type="radio" name=
            "ctl00$Main$gvErrors$ctl02$Options" value="rdbRename" /><label for=
            "ctl00_Main_gvErrors_ctl02_rdbRename">Rename imported signal to:</label>
            <input name="ctl00$Main$gvErrors$ctl02$txtNewName" type="text" value=
            "Test1_1" id="ctl00_Main_gvErrors_ctl02_txtNewName" class="c2" /></td>
          </tr>
        </tbody>
      </table>
    </td>

    <td class="l">
      <input type="hidden" name="ctl00$Main$gvErrors$ctl02$hfParamInternalUnmatched"
      id="ctl00_Main_gvErrors_ctl02_hfParamInternalUnmatched" value=
      "EBC1-Test1" /> <input type="hidden" name=
      "ctl00$Main$gvErrors$ctl02$hfParamInternalMatched" id=
      "ctl00_Main_gvErrors_ctl02_hfParamInternalMatched" value="Test1" />

      <table class="tableinfo c5" cellspacing="1" cellpadding="2" border="0">
        <tbody>
          <tr class="tableinfobody tableinfoGray">
            <th>Value Name</th>

            <th>Current</th>

            <th>Imported</th>
          </tr>

          <tr class="tableinfobody">
            <td class="c3">Unit</td>

            <td class="c4"></td>

            <td class="c4">flag</td>
          </tr>
        </tbody>
      </table>
    </td>
  </tr>

  <tr class="tableinfobody tableinfoGray">
    <td class="l"><span id="ctl00_Main_gvErrors_ctl03_lblName">Test2</span></td>

    <td class="l">
      <table id="ctl00_Main_gvErrors_ctl03_tblOptions" border="0">
        <tbody>
          <tr>
            <td><input id="ctl00_Main_gvErrors_ctl03_rdbCancel" type="radio" name=
            "ctl00$Main$gvErrors$ctl03$Options" value="rdbCancel" /><label for=
            "ctl00_Main_gvErrors_ctl03_rdbCancel">Cancel adding signal.</label></td>
          </tr>

          <tr>
            <td><input id="ctl00_Main_gvErrors_ctl03_rdbReplace" type="radio" name=
            "ctl00$Main$gvErrors$ctl03$Options" value="rdbReplace" /><label for=
            "ctl00_Main_gvErrors_ctl03_rdbReplace">Replace curent signal with
            imported signal.</label></td>
          </tr>

          <tr>
            <td><input id="ctl00_Main_gvErrors_ctl03_rdbRename" type="radio" name=
            "ctl00$Main$gvErrors$ctl03$Options" value="rdbRename" /><label for=
            "ctl00_Main_gvErrors_ctl03_rdbRename">Rename imported signal to:</label>
            <input name="ctl00$Main$gvErrors$ctl03$txtNewName" type="text" value=
            "Test2_1" id="ctl00_Main_gvErrors_ctl03_txtNewName" class="c2" /></td>
          </tr>
        </tbody>
      </table>
    </td>

    <td class="l">
      <input type="hidden" name="ctl00$Main$gvErrors$ctl03$hfParamInternalUnmatched"
      id="ctl00_Main_gvErrors_ctl03_hfParamInternalUnmatched" value=
      "HCMData3-Testw" /> <input type="hidden" name=
      "ctl00$Main$gvErrors$ctl03$hfParamInternalMatched" id=
      "ctl00_Main_gvErrors_ctl03_hfParamInternalMatched" value=
      "PrimaryData3-Testw" />

      <table class="tableinfo c5" cellspacing="1" cellpadding="2" border="0">
        <tbody>
          <tr class="tableinfobody tableinfoGray">
            <th>Value Name</th>

            <th>Current</th>

            <th>Imported</th>
          </tr>

          <tr class="tableinfobody">
            <td class="c3">SA</td>

            <td class="c4">3, 239</td>

            <td class="c4">239</td>
          </tr>
        </tbody>
      </table>
    </td>
  </tr>

  <tr class="tableinfobody tableinfoBlue">
    <td>&nbsp;</td>

    <td>&nbsp;</td>

    <td>&nbsp;</td>
  </tr>
</tbody>

任何解决此问题的帮助将不胜感激。

最佳答案

像这样使用值作为选择器

 function selectAll(option) {
            var radio = $("input[value=" + option + "]");
            $(radio).prop("checked", "checked");
        }

     $('input[type="button"]').on('click', function(){
         var value = $(this).data('attr');
            selectAll(value);
         });

http://jsfiddle.net/3u3z4bLn/3/

关于javascript - Jquery 未设置单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30924743/

相关文章:

javascript - 检查 ul 中是否存在特定的 li 元素

c# - UserRole 表具有重复但名称不同的列,导致角色检查问题

c# - 防止 Web API 方法被调用

javascript - 重新定义一个 jQuery 对话框按钮

javascript - 通过单选按钮更改图像,用户可以选择

jquery - 容器高度设置为容器中最后一个子项的 css 顶部 + 几像素

javascript - 使用 jQuery Autocomplete 动态加载内容

c# - 类型 '' 未映射

javascript - 如何从嵌套函数调用中传递变量

javascript - 在jquery中滚动图像时需要动画