使用jquery将值放入下一个项目

时间:2010-12-22 18:06:49

标签: jquery next

我是jquery的新手。 我正在更改输入文本的值,我需要更改下一个输入文本的值,所以我的代码是:

$(document).ready(function() {   

$('[type=text]').change(function() {

        $(this).next('input').val("newvalue");
    });

});

但没有......!


编辑:在下面的评论中发布HTML

<form method="post" action="/volume/create"> 
    <table> 
        <tr> 
            <th><label for="volume_h1">H1</label></th> 
            <td><input type="text" id="volume_h1" name="volume[h1]"></td> 
        </tr> 
        <!-- .............. to volume_h24 -->
        <tr> 
            <th><label for="volume_h24">H24</label></th>
            <td><input type="text" id="volume_h24" name="volume[h24]"></td> 
        </tr> 
    </table> 
</form>

4 个答案:

答案 0 :(得分:4)

编辑:根据您提供的更新信息,这应该有效:

$('input[type=text]').change(function() {
    var inputs = $(this).closest('form').find('input:text');
    var nextIndex = inputs.index( this ) + 1;
    inputs.slice( nextIndex ).val( this.value );
});

原始解决方案:

很难说没有看到你的标记,但我猜你在两者之间有一些元素。

$('input[type=text]').change(function() {
    $(this).nextAll('input:first').val("newvalue");
});

如果没有看到您的HTML,就无法提供更多答案。

请注意,我已将选择器从'[type=text]'更改为'input[type=text]',这样效率会更高。

答案 1 :(得分:0)

这会改变所有这些:

$("input:text").change(function() {
    var v = $(this).next("input:text");
    v.val($(this).val());
    v.trigger('change');
})

HTML:

<input type="text">
<input type="text">
<input type="text">
<input type="text">
<input type="text">

http://jsfiddle.net/uDgnt/

答案 2 :(得分:0)

试试:

$(this).attr('value',"newvalue");

答案 3 :(得分:0)

我不知道为什么,你的解决方案似乎很好,但我没有使用next()功能。

最后我这样做了:

$('input[type=text]').change(function() {
       //get all the input text of the form
    var yourFormFields = $('#newform').find(':input[type=text]');
      // the index of my changed input
    $index = yourFormFields.index( this );
     //the value i entered
    $mavalue = $(this).val();

       $.each( yourFormFields, function(i, n){
    if(i>$index)
    {yourFormFields.eq(i).val($mavalue);}
         });

});