2012-08-17 38 views
12

Tôi có một trường không cần bất kỳ khoảng trắng nào. Tôi cần phải loại bỏ bất kỳ khi chúng được nhập vào. Dưới đây là những gì tôi đang cố gắng ... không may mắn cho đến nayDải khoảng trắng trên đầu vào

$('#noSpacesField').click(function() { 
    $(this).val().replace(/ /g,''); 
}); 
+0

Nếu bạn đang cố gắng xóa chúng khi chúng được nhập, bạn cần phải liên kết với 'thay đổi',' keyup', 'nhấn phím', v.v. Ràng buộc để' nhấp chuột' sẽ không để giúp bạn. – meagar

Trả lời

33

Sử dụng jQuery cắt để loại bỏ đầu và đuôi khoảng trắng

$.trim(" test case "); // 'test case' 

Để loại bỏ tất cả các khoảng trắng ...

" test ing ".replace(/\s+/g, ''); // 'testing' 

Để xóa khoảng trắng khi được nhập ...

$(function(){ 
    $('#noSpacesField').bind('input', function(){ 
    $(this).val(function(_, v){ 
     return v.replace(/\s+/g, ''); 
    }); 
    }); 
}); 

Live Example

10
$('#noSpacesField').keyup(function() { 
    $(this).val($(this).val().replace(/ +?/g, '')); 
}); 

này sẽ loại bỏ khoảng trống khi bạn gõ, và cũng sẽ loại bỏ các tab char.

+0

Tôi thích sự đơn giản, nhưng tôi nghĩ rằng tôi cần phải giữ liên kết như trong ví dụ của @ Kyle. Cảm ơn – santa

+1

Điều này hoàn thành điều tương tự như câu trả lời của tôi. – Kyle

+0

@Kyle nó hiện nay. Tuy nhiên khi tôi đăng này, bạn đã có câu trả lời của bạn thiết lập như chỉ là một trim. Sau khi tôi đăng nội dung này, bạn đã chỉnh sửa câu trả lời của mình để thêm khóa. – Bot

1

Nếu bạn chỉ muốn đặt số, hãy thử điều này! : D

$("#id").keyUp(function(){ 
    if(isNaN($(this).val())) { 
    $(this).val(0); 
    } 
    $(this).val($(this).val().replace(/ +?/g, '')); 
}) 
Các vấn đề liên quan