我有一个选择框,它会自动自动选择输入字段的相应值。它运作得很好:
<input id="count" value="2.00" type="number">
<select class="autoselect">
<option data-number="1000000000000" selected value="dog">dog</option>
<option data-number="2000000000000" value="horse">horse</option>
<option data-number="4000000000000" value="cat">cat</option>
<option data-number="5000000000000" value="bird">bird</option>
</select>
以下是查询代码:
$(document).ready(function(){
var count = 1000;
$('#count').change(function () {
var that = parseInt($(this).val()*Math.pow(count, 4), 10);
$('.autoselect option:gt(0)').each(function () {
$(this).prop('disabled', ($(this).data('number') < that))
.prop('selected', ($(this).data('number') >= that && $(this)
.prev().data('number') < that));
})
if (that <= $('.autoselect option:eq(1)').data('number')) $('.autoselect option:eq(1) ').prop('selected', true);
$('select.autoselect option[data-number=0]').prop('disabled', false);
}).change()
}
我想要实现的目标实际上是一件简单的事情。在页面加载时,&#34; dog&#34;应始终选择。只有通过更改输入,我的脚本才能开始工作。但它已经在选择&#34; horse&#34;在页面加载时,即使我在输入更改时编写了该函数。
答案 0 :(得分:3)
你的第二个.change()函数在页面加载时触发此事件。没有回调的jQuery事件函数是事件触发器。只需在代码末尾删除第二个.change()。