关于javascript中的模糊

时间:2012-10-17 07:28:33

标签: javascript jquery

我的网页上有四个输入。要求是当用户填充1输入时,其值应填入3输入,3输入颜色应变为红色,同样为第二输入。但是当我们填充1个输入时,则4个输入颜色变为红色。

以下是http://jsfiddle.net/SXzyR/

的示例
<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>

5 个答案:

答案 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);
    }            
})

Here's a fiddle

答案 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') ;  
       });        
    });

})

以下是示例http://jsfiddle.net/SXzyR/2/

答案 3 :(得分:0)

这是因为您已为input $('input')添加了事件处理程序,这意味着textval()应该在任何/所有blur事件中调用inputs你可以做的是

1)将参数传递给textval(),指定哪个变为红色。 2)您可以将事件处理程序附加到特定input以指定需要变为红色的其他input ...

答案 4 :(得分:-2)

检查这个jsFiddle ......

http://jsfiddle.net/SXzyR/8/

问题是因为你的模糊功能适用于所有输入元素.....

修改了一些代码,因此您无需更改或添加任何属性.. jus需要检查条件