2012-09-15 27 views
5

Duplicate có thể:
Check if inputs are empty using jQueryLàm thế nào để kiểm tra xem bất kỳ hộp của tôi là trống hay không trong javascript

Tôi có hình thức và textbox, làm thế nào tôi sẽ quyết định nếu bất kỳ của các hộp văn bản trống khi sử dụng javascript nếu có câu lệnh khác khi một nút biểu mẫu được nhấp.

function checking() { 
    var textBox = $('input:text').value; 
    if (textBox == "") { 
     $("#error").show('slow'); 
    } 
} 

Cảm ơn bạn trước!

+0

http://stackoverflow.com/questions/1854556/check-if-inputs-are-empty-using-jquery – jeremy

Trả lời

12

Bằng cách sử dụng bộ chọn jQuery để lựa chọn các yếu tố, bạn có một đối tượng jQuery và bạn nên sử dụng val() phương pháp nhận/thiết lập giá trị của các phần tử đầu vào.

Cũng lưu ý rằng bộ chọn :textkhông được dùng nữa và tốt hơn là cắt văn bản để xóa ký tự khoảng trắng. bạn có thể sử dụng chức năng tiện ích $.trim.

function checking() { 
    var textBox = $.trim($('input[type=text]').val()) 
    if (textBox == "") { 
     $("#error").show('slow'); 
    } 
} 

Nếu bạn muốn sử dụng value bất động sản đầu tiên bạn nên chuyển đổi các đối tượng jQuery để một đối tượng DOM thô. Bạn có thể sử dụng phương pháp [index] hoặc get.

var textBox = $('input[type=text]')[0].value; 

Nếu bạn có nhiều đầu vào, bạn nên lặp lại chúng.

function checking() { 
    var empty = 0; 
    $('input[type=text]').each(function(){ 
     if (this.value == "") { 
      empty++; 
      $("#error").show('slow'); 
     } 
    }) 
    alert(empty + ' empty input(s)') 
} 
+0

Xin chào! Điều này didnt làm việc là tốt. Tôi có 6 hộp văn bản và hai trong số các hộp văn bản này có giá trị, nó có ảnh hưởng đến điều kiện không? Những gì Im đang cố gắng thực hiện là khi người dùng nhấp vào nút gửi và bất kỳ hộp văn bản còn lại nào trống thì cảnh báo lỗi sẽ hiển thị. Cảm ơn. – ray

+0

@ray Xin chào, hãy thử mã cập nhật. – undefined

+0

Xin chào! Không tốt, tôi nghĩ tôi không phải làm vòng lặp. Thật sự tôi có giải pháp dài -> 'chức năng kiểm tra() \t { \t \t if (. ("Entry_0") giá trị document.getElementById == "") \t \t { \t \t \t $ ("# lỗi "). hiển thị ('chậm'); \t \t} \t \t \t \t if (("entry_1") giá trị document.getElementById == "") \t \t { \t \t \t $ ("# error") hiển thị ('chậm'). \t \t} \t} ' Hãy tưởng tượng, nếu tôi có 20 hộp văn bản. Đó là lý do tại sao Im cố gắng gọi đầu vào: đối tượng văn bản hoặc 'đầu vào biểu mẫu' để gọi tất cả các hộp văn bản chỉ trong một hàm. Cảm ơn! – ray

5

Bạn không thể sử dụng value với chức năng sử dụng đối tượng jquery val(), nhưng điều này sẽ chỉ kiểm tra hộp văn bản đầu tiên được chọn bởi bộ chọn.

Live Demo

function checking() {  
    var textBox = $('input:text').val(); 
    if (textBox == "") { 
     $("#error").show('slow'); 
    } 
} 

Bạn có thể đính kèm blur sự kiện và làm xác nhận này trên losing focus from each textbox.

Live Demo

$('input:text').blur(function() {  
    var textBox = $('input:text').val(); 
    if (textBox == "") { 
     $("#error").show('slow'); 
    } 
}); 

Validation trên submit button nhấp chuột accordi ng để thảo luận với OP

Live Demo

$('#btnSubmit').click(function() { 
    $("#error").hide();  
    $('input:text').each(function(){ 
     if($(this).val().length == 0) 
      $("#error").show('slow'); 
    }); 
}); 
+0

Cám ơn câu trả lời ngay lập tức của bạn, thực sự tôi đã cố gắng nó như là tốt nhưng không tốt. Tôi có 6 hộp văn bản và hai trong số các hộp văn bản này có giá trị, nó có ảnh hưởng đến điều kiện không? Những gì Im đang cố gắng thực hiện là khi người dùng nhấp vào nút gửi và bất kỳ hộp văn bản còn lại nào trống thì cảnh báo lỗi sẽ hiển thị. – ray

+0

Cập nhật câu trả lời của tôi, tôi hy vọng nó sẽ giúp bạn làm những gì bạn muốn. – Adil

+1

@Adil Đây là một câu trả lời tuyệt vời và rất thông tin. +1. – tgriffiths

1

Hãy thử mã này:

var textBox = $('input:text').val(); 

if (textBox==""){ 
    $("#error").show('slow'); 
} 
Các vấn đề liên quan