我是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>
答案 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">
答案 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);}
});
});