2013-08-29 15 views
9

bạn có thể vui lòng cho tôi biết cách thay thế dấu cách để gạch dưới cùng một lúc (khi tôi nhập văn bản vào trường nhập liệu) không? Nếu tôi có chuỗi tôi đã sử dụng như thế.Làm thế nào để thay thế không gian để gạch dưới cùng một lúc (khi tôi nhập văn bản trong trường nhập liệu)?

replace(/ /g,"_"); 

Nhưng tôi đang tìm kiếm khi người dùng nhập văn bản vào trường nhập liệu thì nó sẽ tự động thay thế khoảng trắng bằng dấu gạch dưới.

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

trước hết là sử dụng KeyDown tốt hơn. –

+0

i trong một tình huống tương tự đặt nó trong html là "onKeyDown = 'foo();'" –

Trả lời

12

DEMO

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

Cập nhật

DEMO

$("#test").keyup(function() { 
    this.value = this.value.replace(/ /g, "_"); 
}); 
+1

Đây là cách tiếp cận tổng thể tốt hơn so với kiểm tra khóa nào đã được nhấn. Các chi phí tối thiểu là –

+0

có thể bất kỳ cơ thể giải quyết vấn đề này của tôi cũng.http: //stackoverflow.com/questions/18502449/why-data-position-fixed-data-tap-toggle-false-not-work/18502566? Noredirect = 1 # comment27204600_18502566 – Rohit

+0

@tushar vui lòng kiểm tra câu hỏi này cũng giải quyết http://stackoverflow.com/questions/18502449/why-data-position-fixed-data-tap-toggle-false-not-work/18502566?noredirect=1 này # comment27204600_18502566 – Rohit

0

Bạn có thể phát hiện đó chính là ép bằng cách thêm một tham số để gọi lại của bạn (nói e) sau đó thử nghiệm nó which tài sản (từ documentation)

$("#test").keyup(function(e) { 
    if(e.which === 32 /*space*/){ 
     alert("hh"); 
    } 
}); 
+0

xin vui lòng giúp đỡ để giải quyết này questionhttp: //stackoverflow.com/questions/18502449/why-data-position-fixed-data- tap-toggle-false-not-work/18502566? noredirect = 1 # comment27204600_18502566 – Rohit

0

bạn có thể thay thế toàn bộ giá trị trong trường hợp với một .split (' ') .join (' _'); Nhanh hơn thay thế.

vậy,

$("#test").keyup(function() { 
    $(this).val($(this).val().split(' ').join('_')); 
}); 
1

thử này demo

đang

$("#test").keyup(function(e) { 
    (/ /i).test(this.value)?this.value = this.value.replace(/ /ig,'_'):null; 
}); 
0
$("#test").keypress(function(e) { 
    var textValue = $(this).val(); 
    if(e.keyCode === 32){ 
     $("#test").val(textValue + "_"); 
     return false; 
    } 
}); 
+0

xin vui lòng giúp đỡ trong vấn đề này http://stackoverflow.com/questions/18502449/why-data-position-fixed-data-tap-toggle-false-not-work/18502566?noredirect=1#comment27204600_18502566 – Rohit

3

Đơn giản chỉ cần cố gắng này Demo

$("#test").keyup(function() { 
    if ($(this).val().match(/[ ]/g, "") != null) { 
     $(this).val($(this).val().replace(/[ ]/g, "_")); 
    } 
}); 
+1

IMHO điều này là tốt hơn hơn câu trả lời được chấp nhận. –

0

Fiddle: http://jsfiddle.net/FTmg9/

$(function(){ 
    $('#test').keydown(function(){ 
     $(this).val($(this).val().replace(/\s/g, "_")); 
    }); 
}); 
Các vấn đề liên quan