你能告诉我如何将空格同时替换为下划线(当我在输入字段中输入文本时)?如果我有我这样使用的字符串。
replace(/ /g,"_");
但是我正在寻找当用户在输入字段上输入文本时它会自动用下划线替换空格。我使用 keyup 事件它只在第一次触发。
$("#test").keyup(function() {
var textValue = $(this).val();
if(textValue==' '){
alert("hh");
}
});
只需尝试此演示
$("#test").keyup(function() {
if ($(this).val().match(/[ ]/g, "") != null) {
$(this).val($(this).val().replace(/[ ]/g, "_"));
}
});
试试这个演示
代码
$("#test").keyup(function(e) {
(/ /i).test(this.value)?this.value = this.value.replace(/ /ig,'_'):null;
});
您可以通过向回调添加参数(例如e
)然后测试它的which
属性(来自文档)来检测按下了哪个键
$("#test").keyup(function(e) {
if(e.which === 32 /*space*/){
alert("hh");
}
});
您可以用 .split(' ').join('_'); 替换事件中的整个值 它比替换更快。
所以,
$("#test").keyup(function () {
$(this).val($(this).val().split(' ').join('_'));
});
$("#test").keypress(function(e) {
var textValue = $(this).val();
if(e.keyCode === 32){
$("#test").val(textValue + "_");
return false;
}
});
小提琴:http: //jsfiddle.net/FTmg9/
$(function(){
$('#test').keydown(function(){
$(this).val($(this).val().replace(/\s/g, "_"));
});
});