2015-11-09 33 views
0

我有3个文本框,我想创建这样的东西:当我键入到文本框1,它将复制到文本框3,并且当我键入到文本框2时,它将追加到带有分隔符的文本框3 - )。JQuery追加到文本框时键入

例如,如果我写的堆栈TextBox1中,textbox3会导致栈,那么如果我写下TextBox2中有溢水口,textbox3值:堆栈溢出

这里是我的代码在小提琴:

$(function() {          
 
    $("#text1").keyup(function() {     
 
     $('#text3').val(this.value);     
 
    }); 
 
    $("#text2").keyup(function() {     
 
     $('#text3').val.append('-'+this.value);     
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input type="text" id="text1" /> 
 
<input type="text" id="text2" /> 
 
<input type="text" id="text3" />

任何人都可以修复我的代码?

+0

你遇到的问题或错误是什么? – Blip

回答

2
$(function() {          
    var text1value , text2value; 
    $("#text1").keyup(function() {     
     text1value = $(this).val(); 
     $('#text3').val(text1value);     
    }); 
    $("#text2").keyup(function() {     
     text2value = $(this).val(); 
     $('#text3').val(text1value+'-'+text2value);     
    }); 
}); 
+0

太好了。谢谢。现在我可以将其设置为另一个文本框... –

+0

@CrossVander欢迎您..您可能需要一点if语句以检查文本框是否为空,但它很容易实现..好运 –

+1

当然,我已经也是这样做的,因为当我将它实现到我的项目时,它会给出一个小错误。但现在工作正常。再次感谢 –

1

您还需要检查text2是否为空,因此您不必在此情况下连接' - '。

JS Fiddle

$(function() {          
    $("#text1").keyup(function() { 
     var text2 = $('#text2').val(); 
     var temp = $(this).val(); 
     if (text2 != '') { 
      temp = $(this).val()+'-'+text2; 
     } 
     $('#text3').val(temp);     
    }); 
    $("#text2").keyup(function() { 
     var temp = $('#text1').val()+'-'+$(this).val(); 
     $('#text3').val(temp);     
    }); 
}); 
0

这是做这件事: http://jsfiddle.net/6qojd9L4/

$(function() {          
    $("#text1").keyup(function() {     
     $('#text3').val(this.value + '-' + $('#text2').val());     
    }); 
    $("#text2").keyup(function() {     
     $('#text3').val($('#text1').val() + '-'+this.value);     
    }); 
}); 
1

$(function() {          
 
    $("#text1").keyup(function() {     
 
     $('#text3').val(this.value);     
 
    }); 
 
    $("#text2").keyup(function(e) {     
 
     $('#text3').val(function(index, val) { 
 
      return $("#text1").val() + "-" + e.target.value; 
 
     }); 
 
    }); 
 
});
This should do it 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input type="text" id="text1" /> 
 
<input type="text" id="text2" /> 
 
<input type="text" id="text3" />