获取<input />元素值

时间:2017-04-06 10:30:20

标签: javascript jquery

我有一个<table>和一些行(根据查询运行而有所不同)我可以在一个单选按钮和一些<th>和一个<input>,我想抓住<input> 1}}进一步处理的价值所以请指导我

我的HTML代码

<tr>
    <th>
        <input type="radio" name="assignRadio">
    </th>
    <th> <?= $nearestResponders[ $i ]->get('firstName') . " " . $nearestResponders[ $i ]->get('lastName'); ?></th>
    <th> <?= $companyName; ?></th>
    <th> <?= $nearestResponders[ $i ]->get('contactNumber'); ?></th>
    <th> <?= $presentCity; ?></th>
    <th><?= $distanceInKM; ?></th>
    <input class="selectedResponder" type="hidden" value="<?= $nearestResponders[ $i ]->getObjectId(); ?>">
</tr>
</table>

我的jQuery代码

$('input[name=assignRadio]').on('change',function(){
    console.log($(this).val());
    console.log($(this).next('.selectedResponder').val());
    console.log($(this).closest('.selectedResponder').val());
    console.log($(this).find('.selectedResponder').val());
});

你可以看到我尝试了一些方法来获得价值,但失败了所以请告知

2 个答案:

答案 0 :(得分:1)

您的问题是由于您必须遍历DOM以查找目标元素的方式。它不是单选按钮的兄弟或父母,因此您尝试过的方法都不起作用。

相反,你可以使用closest()找到最近的公共父,tr,然后find()从那里找到元素,如下所示:

&#13;
&#13;
$('input[name=assignRadio]').on('change', function() {
  var $selectedResponder = $(this).closest('tr').find('.selectedResponder');
  console.log($selectedResponder.val());
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <th>
      <input type="radio" name="assignRadio">
    </th>
    <th>Firstname Lastname</th>
    <th>Company name</th>
    <th>Contact number</th>
    <th>Present city</th>
    <th>Distance</th>
    <input class="selectedResponder" type="hidden" value="foo">
  </tr>
  <tr>
    <th>
      <input type="radio" name="assignRadio">
    </th>
    <th>Firstname Lastname</th>
    <th>Company name</th>
    <th>Contact number</th>
    <th>Present city</th>
    <th>Distance</th>
    <input class="selectedResponder" type="hidden" value="bar">
  </tr>
</table>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

这应该有效:

$('input[name="assignRadio"]').on('change',function(){
            console.log($('.selectedResponder').val());
        });