【问题标题】:Selector is selecting all radio buttons in multiple rows. I want to get the name of an input box on the clicked radio buttons row选择器正在选择多行中的所有单选按钮。我想在单击的单选按钮行上获取输入框的名称
【发布时间】:2014-07-05 00:13:49
【问题描述】:

我有以下布局:

我正在使用以下选择器查看美元符号 ($) 和百分号 (%) 单选按钮的变化:

$( "#facultyTable input:radio.dollar,#facultyTable input:radio.percent").change(function(){
    //What to do here?
});

我尝试使用.parent() 选择器,但问题是,由于我选择了所有单选按钮,我不能简单地获取一行的父<tr>,它已关闭所有行。我想要的是以下内容:一旦按下单选按钮,jquery 就会在同一行中获取文本框左侧的值。我怎样才能做到这一点?

如果需要,这里是表格布局:

 <table id="facultyTable">
        <thead>
            <tr>
                <th>Username</th>
                <th>Payment Distribution</th>
                <th>Account Number (Optional)</th>
            </tr>
        </thead>
        <tbody><tr>
            <td><input name="username[]" value="klarson" data-cip-id="cIPJQ342845639" style="background-image: none; background-position: 0% 0%; background-repeat: repeat;"></td>
            <td><input type="radio" name="klarsonOption" value="Even">Even
                <input type="radio" class="dollar" name="klarsonOption" value="$">$
                <input type="radio" class="percent" name="klarsonOption" value="%">%
                <input type="text" name="klarsonAmount" style="display:none;">
                    </td>
            <td><input name="accountNum[]" value="604700-23456-2346-246" data-cip-id="cIPJQ342845640"></td>
            </tr><tr>
            <td><input name="username[]" value="ppoupart" data-cip-id="cIPJQ342845641" style="background-image: none; background-position: 0% 0%; background-repeat: repeat;"></td>
            <td><input type="radio" name="ppoupartOption" value="Even">Even
                <input type="radio" class="dollar" name="ppoupartOption" value="$">$
                <input type="radio" class="percent" name="ppoupartOption" value="%">%
                <input type="text" name="ppoupartAmount" style="display:none;">
                    </td>
            <td><input name="accountNum[]" value="604700-23456-2346-246" data-cip-id="cIPJQ342845642"></td>
            </tr><tr>
            <td><input name="username[]" value="rcohen" data-cip-id="cIPJQ342845643" style="background-image: none; background-position: 0% 0%; background-repeat: repeat;"></td>
            <td><input type="radio" name="rcohenOption" value="Even">Even
                <input type="radio" class="dollar" name="rcohenOption" value="$">$
                <input type="radio" class="percent" name="rcohenOption" value="%">%
                <input type="text" name="rcohenAmount" style="display:none;">
                    </td>
            <td><input name="accountNum[]" value="604700-23456-2346-246" data-cip-id="cIPJQ342845644"></td>
            </tr><tr>
            <td><input name="username[]" value="shai" data-cip-id="cIPJQ342845645" style="background-image: none; background-position: 0% 0%; background-repeat: repeat;"></td>
            <td><input type="radio" name="shaiOption" value="Even">Even
                <input type="radio" class="dollar" name="shaiOption" value="$">$
                <input type="radio" class="percent" name="shaiOption" value="%">%
                <input type="text" name="shaiAmount" style="display:none;">
                    </td>
            <td><input name="accountNum[]" value="604700-23456-2346-246" data-cip-id="cIPJQ342845646"></td>
            </tr><tr>
            <td><input name="username[]" value="vanbeek" data-cip-id="cIPJQ342845647" title="Lazarus is saving this form. 
Click to recover previous versions" style="cursor: auto; background-image: none; background-position: 0% 0%; background-repeat: repeat;"></td>
            <td><input type="radio" name="vanbeekOption" value="Even">Even
                <input type="radio" class="dollar" name="vanbeekOption" value="$">$
                <input type="radio" class="percent" name="vanbeekOption" value="%">%
                <input type="text" name="vanbeekAmount" style="display:none;">
                    </td>
            <td><input name="accountNum[]" value="604700-23456-2346-246" data-cip-id="cIPJQ342845648"></td>
            </tr></tbody>
          </table>

【问题讨论】:

    标签: javascript jquery html input radio-button


    【解决方案1】:

    你可以试试这个

    $( "#facultyTable input:radio.dollar,#facultyTable input:radio.percent").change(function(){
    
        var username = $(this).parent("td").prev("td").find("input:text").val();
    
    });
    

    DEMO

    【讨论】:

    • 谢谢,这个工作,你能解释一下这是怎么工作的吗? .prev() 是如何工作的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2013-09-28
    • 2016-12-21
    相关资源
    最近更新 更多