2012-09-15 24 views
5

可能重复:
Check if inputs are empty using jQuery如何检查我的任何文本框为空的JavaScript

我有表格和文本框,我将如何确定是否有任何的这些文本框是空的使用JavaScript if else语句一旦单击表单按钮。

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

在此先感谢!

+0

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

回答

12

通过使用jQuery选择为选择的元素,你有一个jQuery对象,你应该使用val()获取/设置输入元素值的方法。

另请注意:text选择器是已弃用,最好修剪删除空格字符的文本。您可以使用$.trim实用程序功能。

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

如果你想使用value属性,你应该先jQuery对象转换为原始DOM对象。您可以使用[index]get方法。

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

如果你有多个输入,你应该循环它们。

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

嗨!这也没有工作。我有6个文本框,其中两个文本框确实有值,它会影响条件吗?我想要做的是一旦用户点击提交按钮,任何剩余的文本框是空的错误警告将显示。谢谢。 – ray

+0

@ray嗨,尝试更新的代码。 – undefined

+0

嗨!不好,我想我不必循环。其实我早就解决方案 - > '功能检查() \t { \t \t如果(的document.getElementById( “entry_0”)值== “”) \t \t { \t \t \t $(“#错误“)显示(‘慢’); \t \t} \t \t \t 如果\t(的document.getElementById( “entry_1”)值== “”) \t \t { \t \t \t $( “#错误”)示出( '慢'); \t \t} \t}' 想象一下,如果我有20个文本框。这就是为什么我试图调用输入:文本对象本身或“表单输入”在一个函数中调用所有文本框。谢谢! – ray

5

你不能使用value与jQuery对象使用val()函数,但这将只检查选择器返回的第一个文本框。

Live Demo

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

您可以将blur事件,并做到这一点的验证上losing focus from each textbox.

Live Demo

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

验证上submit button点击accordi NG与OP讨论

Live Demo

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

感谢您的立即答复,其实我已经尝试过很好,但没有好。我有6个文本框,其中两个文本框确实有值,它会影响条件吗?我想要做的是一旦用户点击提交按钮,任何剩余的文本框是空的错误警告将显示。 – ray

+0

更新我的答案,我希望它能帮助你做你想做的事。 – Adil

+1

@Adil这是一个很好的和非常丰富的答案。 +1。 – tgriffiths

1

试试这个代码:

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

if (textBox==""){ 
    $("#error").show('slow'); 
} 
相关问题