在我给出的例子中,我有两个文本框。当第一个文本框中的值发生更改时,我想找到下一个文本框(注意:没有id)并更改其值。
给出的示例仅包含单个文本框组。实际上它可以是多个文本框。 (来自&到财务数据的文本框)
所以,当文本框中的值(txtFinancialYearFrom)发生变化时,我想找到文本框(txtFinancialYearTo)并更改其值。
提前感谢您的帮助!!
<table class="fotm-table">
<tr>
<td class="text-right" width="120">
<span id="ContentPlaceHolder1_lblFinancialYear">Financial Data :</span>
</td>
<td>
<span>
<input type="text" id="txtFinancialYearFrom"
name="ctl00$ContentPlaceHolder1$txtFinancialYearFrom">
</span>
</td>
<td width="20" align="center">
<span style="align-content: center">to</span>
</td>
<td>
<span>
<input type="text" id="txtFinancialYearTo"
name="ctl00$ContentPlaceHolder1$txtFinancialYearTo">
</span>
</td>
</tr>
</table>
答案 0 :(得分:1)
使用给定的信息,因为你将有更多的块(应该是你的桌子上的行),这个解决方案应该有效:
$scope.accounts.findAllAccountsByRestaurant = function(restaurant) { return alert(restaurant); };
代码从表中获取所有行,并且对于每个行,它将添加一个监听器,当您更改第一个文本框(输入)时,它将更改下一个文本框的值(此处它添加1到它)。
答案 1 :(得分:1)
如果我理解正确,你需要这样的东西:
/* Loop through all table rows */
$('tr','table.fotm-table').each(function() {
var tr = this;
/* Cache all inputs a jquery object - you may want to specify which type of input you are targeting i.e. $('input[type="text"]') */
var inputs = $('input',tr);
/* Cache the slave (second in the example) input in a jquery object - you can do the same for multiple inputs, simply by modifying the eq() index parameter
*/
var slaveInput = inputs.eq(1);
/* Listen for changes on the master input */
var masterInput = inputs.eq(0).on('change',function() {
/* Do smt on the slave input - fill it with the next year in the example */
var year = $(this).val();
var followingYear = parseInt(year,10)+1
slaveInput.val(followingYear);
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table class="fotm-table">
<tr>
<td class="text-right" width="120">
<span id="ContentPlaceHolder1_lblFinancialYear">Financial Year :</span>
</td>
<td>
<span>
<input type="text" id="txtFinancialYearFrom"
name="ctl00$ContentPlaceHolder1$txtFinancialYearFrom">
</span>
</td>
<td width="20" align="center">
<span style="align-content: center">to</span>
</td>
<td>
<span>
<input type="text" id="txtFinancialYearTo"
name="ctl00$ContentPlaceHolder1$txtFinancialYearTo">
</span>
</td>
</tr>
</table>
&#13;
这是您提供的jsFiddle的更新分支: https://jsfiddle.net/jkdaza/thonfzwu/5/
答案 2 :(得分:0)
您可以使用link中的这个棘手的解决方案:
$('#txtFinancialYearFrom').change(function(el) {
$(':input:eq(' + ($(':input').index(this) + 1) + ')').val('test');
});