You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据下拉菜单的城市与日期选择修改IMG标签的src属性?

实现城市与日期选择后批量修改图片Src的功能

需求说明

我有20个结构一致的IMG标签,需要添加功能:用户选择城市(dl为德里的城市编码)和日期后,所有图片的src属性根据用户输入修改。当前IMG标签示例如下:

<img src="https://www.example.com/2023/01/08/dl/01/image.jpg" alt="image"><br>
<img src="https://www.example.com/2023/01/08/dl/02/image.jpg" alt="image"><br>
<img src="https://www.example.com/2023/01/08/dl/03/image.jpg" alt="image"><br>
<img src="https://www.example.com/2023/01/08/dl/04/image.jpg" alt="image"><br>
<img src="https://www.example.com/2023/01/08/dl/05/image.jpg" alt="image"><br>

我已创建基础表单,要求默认城市为德里,默认日期为当前日期,表单初始代码如下:

<center><span>-: Select Your City :-</span><br>
<form action="" method="POST">
<select name="city">
<option value="">Select city...</option>
<option value="dl" selected>Delhi</option>
<option value="mb">Mumbai</option>
<option value="bl">Banglore</option>
<option value="hy">Hyderabad</option>
<option value="ch">Chennai</option>
<option value="ch">Kolkata</option>
</select>
<br><br>
<span>Select Date :-</span>
<br>
<input type="date" name="old" value="2023-01-08" min="2015-01-01" max="2023-01-08" required />
<br><br>
<input type="submit" value="Go" />
</form></center>

分步解决方案

1. 修正表单城市编码问题

原表单中Chennai和Kolkata的value均为ch,会导致选择这两个城市时无法区分,需修正Kolkata的编码(比如改为ko):

<option value="ch">Chennai</option>
<option value="ko">Kolkata</option>

2. 设置默认日期为当前日期

通过JavaScript动态获取并设置当前日期为输入框默认值:

<input type="date" name="old" id="dateInput" min="2015-01-01" max="2023-01-08" required />
<script>
// 生成YYYY-MM-DD格式的当前日期
const today = new Date().toISOString().split('T')[0];
document.getElementById('dateInput').value = today;
</script>

3. 实现图片Src批量修改功能

提供两种实现方式,可根据场景选择:

方式一:前端无刷新修改

阻止表单默认提交行为,直接通过JavaScript修改图片地址:

<form id="imageFilterForm">
<!-- 这里放入修正后的表单内容 -->
</form>

<script>
const form = document.getElementById('imageFilterForm');
const images = document.querySelectorAll('img');

form.addEventListener('submit', function(e) {
    e.preventDefault(); // 阻止页面刷新
    
    const selectedCity = form.city.value;
    const selectedDate = form.old.value;
    
    if (!selectedCity) {
        alert('请选择城市');
        return;
    }
    
    // 将日期格式转为YYYY/MM/DD
    const formattedDate = selectedDate.replace(/-/g, '/');
    
    // 遍历所有图片更新src
    images.forEach((img, index) => {
        // 生成两位数字的图片序号(01、02...20)
        const imgNumber = (index + 1).toString().padStart(2, '0');
        img.src = `https://www.example.com/${formattedDate}/${selectedCity}/${imgNumber}/image.jpg`;
    });
});
</script>

方式二:后端动态生成(以PHP为例)

通过后端接收表单参数,动态渲染图片标签:

<?php
// 获取提交的城市与日期,默认值设为德里和当前日期
$selectedCity = $_POST['city'] ?? 'dl';
$selectedDate = $_POST['old'] ?? date('Y-m-d');
// 转换日期格式为YYYY/MM/DD
$formattedDate = str_replace('-', '/', $selectedDate);
?>

<!-- 动态生成20张图片 -->
<?php for ($i = 1; $i <= 20; $i++) : ?>
    <?php $imgNumber = str_pad($i, 2, '0', STR_PAD_LEFT); ?>
    <img src="https://www.example.com/<?php echo $formattedDate; ?>/<?php echo $selectedCity; ?>/<?php echo $imgNumber; ?>/image.jpg" alt="image"><br>
<?php endfor; ?>

<!-- 渲染带默认值的表单 -->
<center><span>-: Select Your City :-</span><br>
<form action="" method="POST">
<select name="city">
<option value="">Select city...</option>
<option value="dl" <?php echo $selectedCity === 'dl' ? 'selected' : ''; ?>>Delhi</option>
<option value="mb" <?php echo $selectedCity === 'mb' ? 'selected' : ''; ?>>Mumbai</option>
<option value="bl" <?php echo $selectedCity === 'bl' ? 'selected' : ''; ?>>Banglore</option>
<option value="hy" <?php echo $selectedCity === 'hy' ? 'selected' : ''; ?>>Hyderabad</option>
<option value="ch" <?php echo $selectedCity === 'ch' ? 'selected' : ''; ?>>Chennai</option>
<option value="ko" <?php echo $selectedCity === 'ko' ? 'selected' : ''; ?>>Kolkata</option>
</select>
<br><br>
<span>Select Date :-</span>
<br>
<input type="date" name="old" value="<?php echo $selectedDate; ?>" min="2015-01-01" max="2023-01-08" required />
<br><br>
<input type="submit" value="Go" />
</form></center>

内容的提问来源于stack exchange,提问作者Dhiraz Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 05:55:29