我的网页上有四个输入。要求是当用户填充1输入时,其值应填入3输入,3输入颜色应变为红色,同样为第二输入。但是当我们填充1个输入时,则4个输入颜色变为红色。
的示例<head>
<script type="text/javascript" src="jquery-1.7.2.js"></script>
<script type="text/javascript">
$(function(){
$('input').blur(function(){
txtval()
})
})
</script>
<script type="text/javascript">
function txtval(){
document.getElementById('myid3').value = document.getElementById('myid1').value;
document.getElementById('myid4').value = document.getElementById('myid2').value;
document.getElementById('myid3').style.color="#ff0000"
document.getElementById('myid4').style.color="#ff0000"
}
</script>
</head>
<body>
1
<input type="text" id="myid1" value="Enter name"/>
2
<input type="text" id="myid2" value="Enter name"/>
3
<input type="text" id="myid3" value="Enter name"/>
4
<input type="text" id="myid4" value="Enter name"/>
</body>
答案 0 :(得分:1)
这是一个简单的解决方案。检查触发id
事件的元素的blur
,并更新相应的元素value
和颜色:
$('input').blur(function(){
if (this.id == 'myid1') {
$('#myid3').css('color', '#FF0000').val(this.value);
} else if (this.id == 'myid2') {
$('#myid4').css('color', '#FF0000').val(this.value);
}
})
答案 1 :(得分:0)
因为在所有输入模糊事件上调用了txtval()方法,并且您的方法没有处理任何情况以防止突出显示第二个输入。因此,方法中的所有4行都会被执行,因此第4个输入也会被着色!
这是更新后的代码: http://jsfiddle.net/SXzyR/
$(function(){
$('#myid1').blur(function(){
$('myid3').value=$(this).value();
$('#myid3').css('color','#FF0000')
});
$('#myid2').blur(function(){
$('myid3').value=$(this).value();
$('#myid4').css('color','#FF0000')
});
});
答案 2 :(得分:0)
像这样更改你的html代码:
1
<input type="text" id="myid1" value="Enter name" rel="myid3" />
2
<input type="text" id="myid2" value="Enter name" rel="myid4" />
3
<input type="text" id="myid3" value="Enter name"/>
4
<input type="text" id="myid4" value="Enter name"/>
这里是js代码
$(function(){
$('input[rel]').each(function(){
$(this).blur(function(){
$("#" + $(this).attr("rel")).val($(this).val()).css('color','#FF0000') ;
});
});
})
答案 3 :(得分:0)
这是因为您已为input
$('input')
添加了事件处理程序,这意味着textval()
应该在任何/所有blur
事件中调用inputs
你可以做的是
1)将参数传递给textval()
,指定哪个变为红色。
2)您可以将事件处理程序附加到特定input
以指定需要变为红色的其他input
...
答案 4 :(得分:-2)
检查这个jsFiddle ......
问题是因为你的模糊功能适用于所有输入元素.....
修改了一些代码,因此您无需更改或添加任何属性.. jus需要检查条件