مسج وتغيير () مع أكثر من وظيفة واحدة؟
سؤال
أحاول أن أجد أفضل طريقة للحصول على وظيفة مختلفة تحدث عند تغيير المربع الخاص بي.
هذا هو بلدي اختيار 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>
مسج بلدي هو:
$('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;
}
});
المحلول
$('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>
معرف أيضا واستخدام ذلك لتحديده لأنه سيكون أسرع من الاسم
نصائح أخرى
متأكد من أن هذا سيعمل داخل وظيفة التغيير:
$('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;
}
});
هل تعني أن تفعل شيئا مختلفا عن القيمة المختارة المختلفة؟
إذا كان الأمر كذلك، أعتقد أنه يمكنك استخدام الكائن "هذا" في الوظيفة لإحالة مصدر الحدث (حدد في هذه الحالة) ويمكنك التحقق من قيمتها باستخدام ".val ()" أو ".Text ()" ل تعرف على القيمة التي هي وعملية وفقا لذلك.
أتمنى أن يساعدك هذا.
استخدم عملية استقامة فرعية في القيمة المحددة واحصل على سمة القيمة الخاصة بها كتمييز لعملك:
$('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
}
...
});
لا تنتمي إلى StackOverflow