<div class="row cl"> <label class="form-label col-xs-4 col-sm-2">图片</label> <div class="formControls col-xs-8 col-sm-9"> <script type="text/javascript" src="js/selimage.js"></script> <input class="image" type="text" name="image" id="image" onclick="selimage();" placeholder="请选择图片" readonly="readonly" /> </div> </div><div class="row cl"> <label class="form-label col-xs-4 col-sm-2">详情页图</label> <div class="formControls col-xs-8 col-sm-9"> <script type="text/javascript" src="js/selimage.js"></script> <input class="image" type="text" name="image1" id="image1" onclick="selimage();" placeholder="请选择图片" readonly="readonly" /> </div> </div>上传图片时,商品详情图会覆盖图片,该如何更改代码
时间: 2023-06-14 07:08:22 浏览: 99
根据提供的代码,可以看出两个 input 标签都使用了相同的 selimage.js 脚本,并且都有相同的 ID,这会导致两个 input 标签的点击事件都会触发同一个函数,即 selimage() 函数,从而导致后一个 input 标签覆盖了前一个 input 标签的值。
为了解决这个问题,可以修改代码,将两个 input 标签的 ID 分别改为不同的值,并修改 selimage.js 脚本中的代码,使其能够正确地为每个 input 标签设置值。以下是修改后的代码:
```
<div class="row cl">
<label class="form-label col-xs-4 col-sm-2">图片</label>
<div class="formControls col-xs-8 col-sm-9">
<script type="text/javascript" src="js/selimage.js"></script>
<input class="image" type="text" name="image" id="image" onclick="selimage('image');" placeholder="请选择图片" readonly="readonly" />
</div>
</div>
<div class="row cl">
<label class="form-label col-xs-4 col-sm-2">详情页图</label>
<div class="formControls col-xs-8 col-sm-9">
<script type="text/javascript" src="js/selimage.js"></script>
<input class="image" type="text" name="image1" id="image1" onclick="selimage('image1');" placeholder="请选择图片" readonly="readonly" />
</div>
</div>
```
修改后的 selimage.js 脚本:
```
function selimage(id) {
var url = "选择图片的页面地址";
var win = window.open(url, "图片选择器", "width=800,height=600,scrollbars=yes");
win.imageid = id; // 将当前 input 标签的 ID 存储到新窗口中
}
function setImage(url) {
var win = window.opener;
var id = win.imageid; // 获取当前 input 标签的 ID
var input = win.document.getElementById(id);
input.value = url; // 为当前 input 标签设置值
}
```
阅读全文