2017-02-20 36 views
0

我想在我的輸入字段jQuery中做一個簡單的驗證器。 目前我有以下幾點:檢查,以確保所有字段填充jquery

function checkInputs(){ 
var isValid = true; 
$('.input-required').each(function() { 
    if($(this).val() === ''){ 
     isValid = false; 
     return false; 
    }   
}); 
return isValid; 
} 

然後,我有一個按鈕,正確的,是這樣的:

$('#confirm').click(function() { 
    alert(checkInputs()); 
}); 

但這總是返回true即使輸入是空的。 此外,在這個工程中,我將要做的如果所有的輸入都填入,一個按鈕將被啓用點擊。

編輯它,所以它現在有一個選擇器,仍然總是如此。

在此先感謝

+0

你有一個錯字是你的代碼,也許你的意思是$( '輸入需要') 。 –

+0

哦,該死的你是對的,加了!但仍總是返回true – Wesleyvans

回答

2

嘗試使用filter屬性來獲取具有required屬性的輸入。

$('input').filter('[required]')

添加代碼以檢查是否輸入被填充並啓用或禁用button。注意,如果我們使用這個函數,那麼函數$('#confirm').click(function());的功能就很重要,因爲這個按鈕只有在輸入被填充時才能使用。

function checkInputs() { 
 
    var isValid = true; 
 
    $('input').filter('[required]').each(function() { 
 
    if ($(this).val() === '') { 
 
     $('#confirm').prop('disabled', true) 
 
     isValid = false; 
 
     return false; 
 
    } 
 
    }); 
 
    if(isValid) {$('#confirm').prop('disabled', false)} 
 
    return isValid; 
 
} 
 

 
$('#confirm').click(function() { 
 
    alert(checkInputs()); 
 
}); 
 

 
//Enable or disable button based on if inputs are filled or not 
 
$('input').filter('[required]').on('keyup',function() { 
 
checkInputs() 
 
}) 
 

 
checkInputs()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 
    <input required> 
 
    <input required> 
 
    <input required> 
 
    <button id="confirm">check</button> 
 
</form>

+0

是的,這是完美的作品!謝謝 – Wesleyvans

+0

你很受歡迎 –

0

嘗試目標元素以這樣的方式 $('input[required]')

這應該做的伎倆。

0

您的選擇器正在尋找顯然不存在的tagName <input-required></input-required>

添加一個點前綴爲

也可以用filter()簡化

function checkInputs(){ 
    return !$('.input-required').filter(function() { 
     return !this.value; 
    }).length; 
} 

注:不會對無線電或複選框的工作,如果這些都是與類和你的元素集合的一部分如果情況如此,則需要添加條件類型

0

如果是0,則所有的輸入填充,否則返回0意味着任何一個或多個是空的輸入。

function checkInputs(){ 
    var flag = 0; 
    $('input').each(function() { 
     if($(this).val() == ''){ 
     return flag = 1; 
     } 
    }); 
    return flag; 
    } 
    $('#confirm').click(function() { 
     alert(checkInputs()); 
    }); 
0

你忘了把階級符號的jQuery:

function checkInputs() { 
    var isValid = true; 
    $('.input-required').each(function() { 
    if($(this).val() === ''){ 
     isValid = false; 
     return false; 
    }   
    }); 

    return isValid; 
} 

試試這個..