Javascript 单击文本框更改图像

Javascript 单击文本框更改图像,javascript,html,forms,Javascript,Html,Forms,我正在尝试创建一个包含多个文本框的html表单。我想根据活动文本框更改图像。我写的代码工作得很好,但是如果我想使用更多的代码,而不是一些更改,那么代码将非常重复 有更好的方法吗 html: 如果要选择特定的图像,请尝试将参数绑定到html标记中,并将其传递给函数参数 如果要选择特定的图像,请尝试将参数绑定到html标记中,并将其传递给函数参数 如果要选择特定的图像,请尝试将参数绑定到html标记中,并将其传递给函数参数 如果要选择特定的图像,请尝试将参数绑定到html标记中并将其传递给函数参数

我正在尝试创建一个包含多个文本框的html表单。我想根据活动文本框更改图像。我写的代码工作得很好,但是如果我想使用更多的代码,而不是一些更改,那么代码将非常重复

有更好的方法吗

html:


如果要选择特定的图像,请尝试将参数绑定到html标记中,并将其传递给函数参数

如果要选择特定的图像,请尝试将参数绑定到html标记中,并将其传递给函数参数

如果要选择特定的图像,请尝试将参数绑定到html标记中,并将其传递给函数参数


如果要选择特定的图像,请尝试将参数绑定到html标记中并将其传递给函数参数

,您可以将图像文件名存储为
数据-*
属性,并使用不引人注目的JavaScript将事件处理程序分配给所有输入。此外,
onfocus
事件比
onclick
更合适,因为它处理其他场景,例如按tab键更改活动输入

<input type= "text" name = "t1" data-image="image1.jpg" value = "" />
<input type= "text" name = "t2" data-image="image2.jpg" value = "" />

JavaScript:

window.onload = function(){
    var inputs = document.querySelectorAll('input[type=text]');
    var image =  document.getElementById('f1');

    for(var i=0; i<inputs.length; i++){
        inputs[i].onfocus = function(){
            image.src = this.getAttribute('data-image');
        };
    }
};
window.onload=function(){
var inputs=document.querySelectorAll('input[type=text]');
var image=document.getElementById('f1');

对于(var i=0;i您可以将图像文件名存储为
data-*
属性,并使用不引人注目的JavaScript将事件处理程序分配给所有输入。此外,
onfocus
事件比
onclick
更合适,因为它可以处理其他情况,例如按tab键更改活动输入

<input type= "text" name = "t1" data-image="image1.jpg" value = "" />
<input type= "text" name = "t2" data-image="image2.jpg" value = "" />

JavaScript:

window.onload = function(){
    var inputs = document.querySelectorAll('input[type=text]');
    var image =  document.getElementById('f1');

    for(var i=0; i<inputs.length; i++){
        inputs[i].onfocus = function(){
            image.src = this.getAttribute('data-image');
        };
    }
};
window.onload=function(){
var inputs=document.querySelectorAll('input[type=text]');
var image=document.getElementById('f1');

对于(var i=0;i您可以将图像文件名存储为
data-*
属性,并使用不引人注目的JavaScript将事件处理程序分配给所有输入。此外,
onfocus
事件比
onclick
更合适,因为它可以处理其他情况,例如按tab键更改活动输入

<input type= "text" name = "t1" data-image="image1.jpg" value = "" />
<input type= "text" name = "t2" data-image="image2.jpg" value = "" />

JavaScript:

window.onload = function(){
    var inputs = document.querySelectorAll('input[type=text]');
    var image =  document.getElementById('f1');

    for(var i=0; i<inputs.length; i++){
        inputs[i].onfocus = function(){
            image.src = this.getAttribute('data-image');
        };
    }
};
window.onload=function(){
var inputs=document.querySelectorAll('input[type=text]');
var image=document.getElementById('f1');

对于(var i=0;i您可以将图像文件名存储为
data-*
属性,并使用不引人注目的JavaScript将事件处理程序分配给所有输入。此外,
onfocus
事件比
onclick
更合适,因为它可以处理其他情况,例如按tab键更改活动输入

<input type= "text" name = "t1" data-image="image1.jpg" value = "" />
<input type= "text" name = "t2" data-image="image2.jpg" value = "" />

JavaScript:

window.onload = function(){
    var inputs = document.querySelectorAll('input[type=text]');
    var image =  document.getElementById('f1');

    for(var i=0; i<inputs.length; i++){
        inputs[i].onfocus = function(){
            image.src = this.getAttribute('data-image');
        };
    }
};
window.onload=function(){
var inputs=document.querySelectorAll('input[type=text]');
var image=document.getElementById('f1');

对于(var i=0;i现代解决方案

您可以使用新的自定义属性
data something
来存储正确的图像。 然后在javascript中检查元素是否具有正确的属性并显示结果

js

var form=document.getElementsByTagName('form')[0],
    div=document.getElementsByTagName('div')[0];

form.onclick=function(e){
 !e.target.dataset.img||
 (div.firstChild.src='http://placekitten.com/'+e.target.dataset.img);
}
html

<div><img src="default.png"></div>
<form>
<label><input name="a" data-img="50/200"> a</label>
<label><input name="b" data-img="100/200"> b</label>
<label><input name="c" data-img="150/200"> c</label>
<label><input name="d" data-img="200/200"> d</label>
</form>

现代解决方案

您可以使用新的自定义属性
data something
来存储正确的图像。 然后在javascript中检查元素是否具有正确的属性并显示结果

js

var form=document.getElementsByTagName('form')[0],
    div=document.getElementsByTagName('div')[0];

form.onclick=function(e){
 !e.target.dataset.img||
 (div.firstChild.src='http://placekitten.com/'+e.target.dataset.img);
}
html

<div><img src="default.png"></div>
<form>
<label><input name="a" data-img="50/200"> a</label>
<label><input name="b" data-img="100/200"> b</label>
<label><input name="c" data-img="150/200"> c</label>
<label><input name="d" data-img="200/200"> d</label>
</form>

现代解决方案

您可以使用新的自定义属性
data something
来存储正确的图像。 然后在javascript中检查元素是否具有正确的属性并显示结果

js

var form=document.getElementsByTagName('form')[0],
    div=document.getElementsByTagName('div')[0];

form.onclick=function(e){
 !e.target.dataset.img||
 (div.firstChild.src='http://placekitten.com/'+e.target.dataset.img);
}
html

<div><img src="default.png"></div>
<form>
<label><input name="a" data-img="50/200"> a</label>
<label><input name="b" data-img="100/200"> b</label>
<label><input name="c" data-img="150/200"> c</label>
<label><input name="d" data-img="200/200"> d</label>
</form>

现代解决方案

您可以使用新的自定义属性
data something
来存储正确的图像。 然后在javascript中检查元素是否具有正确的属性并显示结果

js

var form=document.getElementsByTagName('form')[0],
    div=document.getElementsByTagName('div')[0];

form.onclick=function(e){
 !e.target.dataset.img||
 (div.firstChild.src='http://placekitten.com/'+e.target.dataset.img);
}
html

<div><img src="default.png"></div>
<form>
<label><input name="a" data-img="50/200"> a</label>
<label><input name="b" data-img="100/200"> b</label>
<label><input name="c" data-img="150/200"> c</label>
<label><input name="d" data-img="200/200"> d</label>
</form>

规格
规格2
函数changeImage(){ var specImage=document.getElementById(“f1”), specs=document.getElementsByTagName('input'); Array.prototype.map.call(规格、函数(规格、索引){ spec.addEventListener('click',函数(事件){ event.preventDefault(); specImage.src=“image”+index+”.jpg”; }); }); } changeImage();
注意:这将选择页面上的所有输入,我建议改为按类查询元素。


规格
规格2
函数changeImage(){ var specImage=document.getElementById(“f1”), specs=document.getElementsByTagName('input'); Array.prototype.map.call(规格、函数(规格、索引){ spec.addEventListener('click',函数(事件){ event.preventDefault(); specImage.src=“image”+index+”.jpg”; }); }); } changeImage();
注意:这将选择页面上的所有输入,我建议改为按类查询元素。


规格
规格2
函数changeImage(){ var specImage=document.getElementById(“f1”), specs=document.getElementsByTagName('input'); Array.prototype.map.call(规格、函数(规格、索引){ spec.addEventListener('click',函数(事件){ event.preventDefault(); specImage.src=“image”+index+”.jpg”; }); }); } changeImage();
注意:这将选择页面上的所有输入,我建议改为按类查询元素。


规格
规格2
功能改变