我有一个下拉列表
<select id="ddl1">
<option value="0">number</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select>
现在我正在做的是,只要用户点击ddl1
我将其默认值更改为4
就像这样
$(function () {
var defaultValue = "4";
$('#ddl1').click(function () {
var select_val = $('#ddl1').val();
if (select_val == "0")
$('#ddl1').val(defaultValue);
});
});
但现在问题是当用户尝试选择下拉列表的默认选项,即number
时,会选择选项4
。任何想法如何解决这个问题?
问题是当用户点击下拉列表时 - &gt;必须选择选项4
,并且当用户点击选项number
时 - >必须选择选项number
,而不是选项4
。
答案 0 :(得分:1)
你应该在change
上调用此功能,而不是click
- 否则,就像你说的那样,只要你选择了一个选项就可以了。
$('#ddl1').change(function () {
编辑:你应该使用一个类来给出默认选项的感觉,你实际上并不希望它设置为用户点击的每个时间选择:
<select id="ddl1">
<option value="0">number</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4" class="default">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select>
.default {
color: blue;
}
答案 1 :(得分:1)
这是你要找的东西吗? http://jsfiddle.net/swm53ran/84/
$(function () {
var defaultValue = "4";
var count = 0;
$('#ddl1').click(function () {
if (count < 1) {
$('#ddl1').val(defaultValue);
count++;
}
});
});
答案 2 :(得分:1)
不确定您为什么这样做,但focusin
或focus
事件可以帮助您实现以下目标:
$(function() {
$('#ddl1').on('focusin', function() {
this.value != 0 || $(this).val( 4 );
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="ddl1">
<option value="0">number</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
</select>