10

你能告诉我如何将空格同时替换为下划线(当我在输入字段中输入文本时)?如果我有我这样使用的字符串。

replace(/ /g,"_");

但是我正在寻找当用户在输入字段上输入文本时它会自动用下划线替换空格。我使用 keyup 事件它只在第一次触发。

$("#test").keyup(function() {
  var textValue = $(this).val();
    if(textValue==' '){
        alert("hh");
    }
});
4

7 回答 7

14

演示

$("#test").keyup(function () {
    var textValue = $(this).val();
    textValue =textValue.replace(/ /g,"_");
    $(this).val(textValue);
});

更新

演示

$("#test").keyup(function () {
    this.value = this.value.replace(/ /g, "_");
});
于 2013-08-29T07:13:02.773 回答
3

只需尝试此演示

$("#test").keyup(function() {
    if ($(this).val().match(/[ ]/g, "") != null) {
        $(this).val($(this).val().replace(/[ ]/g, "_"));
    }
});
于 2013-08-29T07:18:23.693 回答
1

试试这个演示

代码

$("#test").keyup(function(e) {
  (/ /i).test(this.value)?this.value = this.value.replace(/ /ig,'_'):null;
});
于 2013-08-29T07:15:28.110 回答
0

您可以通过向回调添加参数(例如e)然后测试它的which属性(来自文档)来检测按下了哪个键

$("#test").keyup(function(e) {
    if(e.which === 32 /*space*/){
        alert("hh");
    }
});
于 2013-08-29T07:11:56.407 回答
0

您可以用 .split(' ').join('_'); 替换事件中的整个值 它比替换更快。

所以,

$("#test").keyup(function () {
    $(this).val($(this).val().split(' ').join('_'));
});
于 2013-08-29T07:13:08.690 回答
0
$("#test").keypress(function(e) {
  var textValue = $(this).val();
    if(e.keyCode === 32){
        $("#test").val(textValue + "_");
        return false;
    }
});
于 2013-08-29T07:15:34.470 回答
0

小提琴:http: //jsfiddle.net/FTmg9/

$(function(){
    $('#test').keydown(function(){
         $(this).val($(this).val().replace(/\s/g, "_"));
    });
});
于 2013-08-29T07:25:25.343 回答