2017-10-19 71 views
0

使用jQuery预输入Jquery的隐藏的输入选择,以写值

在onClickAfter:功能(节点,一个,项目,活动)事件我做

node.closest('td').first('input[type=hidden]').attr('value',item.id); 

的HTML代码

的一部分
<td> 
    <input type="hidden" name="carParams[2].id"> 
    <input type="hidden" name="carParams[2].idJoins"> 
    <div class="typeahead__container cancel"> 
      <div class="typeahead__field"> 
       <span class="typeahead__query"> 
        <span class="typeahead__cancel-button"></span><input name="carParams[2].name" class="form-control js-typeahead" type="search" placeholder="Type partial value" autocomplete="off"> 
       </span> 
      </div> 
    <div class="typeahead__result"><ul class="typeahead__list"><li class="typeahead__item typeahead__group-carparam"><a href="javascript:;" data-group="carParam" data-index="0"><span class="typeahead__display"><strong>color value</strong></span></a></li></ul></div></div> 
</td> 

问题是值字段是不是把一个正确的地方...

<td value="45"> 

希望把它放到<input type="hidden" name="carParams[2].id">

+0

https://api.jquery.com/first/尝试' node.closest( 'TD')。找到( '输入[类型=隐藏]')。第一个()。ATTR ....' – Huangism

回答

1

使用此

node.closest('td').find('input[type=hidden]').first().attr('value',item.id); 

https://api.jquery.com/first/的规定“减少匹配的元素集合到第一中该集合。“

您的原始代码在td上执行此操作,而不是input这是问题所在。另外first()不接受任何参数。您可以使用.find()首先得到隐藏的输入,然后使用first()将其降低到第一个

该解决方案可以适用于不同的形式

1

使用.find()遍历孩子

node.closest('td').find('input[name="carParams[2].id"]').attr('value',item.id);