Py学习  »  Jquery

jQuery if多个.val下拉值的条件

RuFFCuT • 5 年前 • 1588 次点击  

我将根据下拉选择将数据追加到输入字段中,什么是最干净的方式来执行此操作,因为我有大约25个要执行的操作,目前我的工作方式如下:

$('#dropdown').change(function() {
  if($(this).val() == 10){
    ('#number').val('108-0<?php echo $number; ?>');
  }
});

有几个下拉选项共享相同的附加编号,因此我不想重复代码,我知道我可以执行以下操作:

$('#dropdown').change(function() {
  if($(this).val() == 10||
     $(this).val() == 11||
     $(this).val() == 12){
    $('#number').val('108-0<?php echo $number; ?>');
}

但即使这看起来太多了,你会怎么做?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/51458
文章 [ 2 ]  |  最新文章 5 年前
Anonymous
Reply   •   1 楼
Anonymous    5 年前

如果值没有模式,则数组是最好的方法,但对于您的示例,最好使用:

$('#dropdown').change(function() {
  var val = parseInt($(this).val());
  if(val >= 10 && val <= 12){
    $('#number').val('108-0<?php echo $number; ?>');
}
CertainPerformance
Reply   •   2 楼
CertainPerformance    5 年前

检查可能值的数组是否包含 .val() :

$('#dropdown').change(function() {
  if ([10, 11, 12].includes(Number($(this).val()))) {
    $('#number').val('108-0<?php echo $number; ?>');
  }
});

不需要像jQuery这样的大型库来处理这些琐碎的事情:

const [dropdown, number] = ['dropdown', 'number'].map(id => document.getElementById(id));
dropdown.addEventListener('change', () => {
  if ([10, 11, 12].includes(Number(dropdown.value))) {
    number.value = '108-0<?php echo $number; ?>';
  }
});

如果需要检查多个值数组,请先将其提取到变量中:

$('#dropdown').change(function() {
  const val = Number($(this).val());
  if ([10, 11, 12].includes(val)) {
    $('#number').val('108-0<?php echo $number; ?>');
  } else if ([1, 5, 15].includes(val)) {
    $('#number').val(5000);
  }
});