0
我有一個列表,其中插入了一個新行。我希望它後面的所有序列號都增加一個。如果數字大於某值,則將數字增加1
<div class="modal" id="insertroom" style="display: none;">
<button class="dismiss right button"><i class="fa fa-close"></i></button>
<h3>Insert a room in the route</h3>
<p><span class="fixed-width">Room name:</span>
<input name="room_id" id="room_id"/>
</p>
<p><span class="fixed-width">Sequence number in the route:</span> <input type="number" id="newsequencenumber" name="sequence" value=""></p>
<p><span class="fixed-width">Route name:</span>
<input name="route_number" id="route_number"/>
</p>
<p><input type="button" class="button" id="insertdetails" name="insertdetails" value="Insert details"></p>
</div>
<ul class="ui-listview">
<li><span class="half-fixed-width">AB101B</span>
Sequence:
<input type="number" class="sequence" name="sequence" value="1">
<a class="button inserthere" title="insert room here" href="#" rel="1">
<i class="fa fa-plus-square"></i>
</a>
</li>
我寫了下面的代碼,但它似乎被忽略了if(new_sequence_number > thisval)
部分,因爲它加1所有的數字,而不是隻具有比插入行的序列號更大的值的。
$('#insertdetails').on('click', function() {
/*get values input into modal */
var new_sequence_number = $('#insertroom #newsequencenumber').val();
var new_room_id = $('#insertroom #room_id').val();
var new_route_id = $('#insertroom #route_number').val();
/*put those values into the new row */
$('#new_room_id' + new_sequence_number).val(new_room_id);
$('#new_route_id' + new_sequence_number).val(new_route_id);
$('#insertroom').hide();
$('.overlay').hide();
$('.sequence').filter(function(new_sequence_number) {
var thisval = parseInt($(this).val());
var plusone = thisval + 1;
if(thisval > new_sequence_number) {
$(this).val(plusone);
}
});
});
我檢查了所有具有類似標題的問題,但它們都沒有解決我的問題 –
您已經命名'參數new_sequence_number'將是該組中的元素的索引 - 是你期待什麼它是?如果你可以設置一個 - 或至少是關聯的HTML,它可能有助於查看工作片段 –
如果你的解釋是正確的,那麼你有錯誤的IF子句。它應該是'thisval> new_sequence_number'。你說如果這個值大於序列號。 – yomisimie