我正在尝试找到更改我的选择框时发生不同功能的最佳方法。
这是我的选择HTML
<select name="event-recurring">
<option selected="true">None</option>
<option value="daily">Daily</option>
<option value="weekly">Weekly</option>
<option value="monthly">Monthly</option>
</select>
我的jquery是:
$('select[name=event-recurring] option:selected').change (function (){
//Will Do Something
});
我如何告诉它在不同的值上做些不同的事情?
解决方案:
$('#event-recurring').change(function (){
var $select = $(this);
switch($select.val()) {
case "daily":
$('#recurring-options').remove();
$("<div id='recurring-options' class='row'><label>Choose:</label>Choose a Date</div>").insertAfter('#recurring');
break;
case "weekly" :
$('#recurring-options').remove();
$("<div id='recurring-options' class='row'><label>Choose:</label>Weekly</div>").insertAfter('#recurring');
break;
case "monthly":
$('#recurring-options').remove();
$("<div id='recurring-options' class='row'><label>Choose:</label>Monthly</div>").insertAfter('#recurring');
break;
default:
$('#recurring-options').remove();
break;
}
});
答案 0 :(得分:3)
$('select[name=event-recurring]').change (function (){
var $select = $(this);
switch($select.val()) {
case "daily":
// do something
break;
case "weekly" :
// do something else
break;
default:
// default case
break;
}
});
我建议给<select>
一个id并使用它来选择它,因为它会比名字更快
答案 1 :(得分:1)
非常确定这将在更改功能中起作用:
$('select[name=event-recurring]').change (function (){
switch ($('option:selected', this).val()) {
case "daily":
// do something
break;
case "weekly":
// do something
break;
case "monthly":
// do something
break;
}
});
答案 2 :(得分:0)
你的意思是在不同的选择值上做不同的事情吗?
如果是这样,我相信你可以在函数中使用'this'对象来引用事件的来源(在这种情况下是select),你可以使用'.val()'或'.text来检查它的值。 )''看看它的价值是什么,并相应地处理。
希望这有帮助。
答案 3 :(得分:0)
在所选值上使用子查询,并将其值属性作为行动的鉴别器:
$('select[name=event-recurring]').change( function() {
var value = $(this).find(':selected').attr('value');
if (!value) { // none
do something
}
else if (value == 'daily') {
do something else
}
...
});