2016-08-17 70 views
1

我不是最好的javascript,並且我無法禁用表單,除非我的所有輸入字段都不爲空。jQuery,如果所有的輸入都不爲空,則將類添加到按鈕

我會添加其他的東西,比如確保電子郵件是一封電子郵件,密碼至少爲8等。但現在我只想讓它工作,如果所有的輸入不是空的,條款和條件複選框被選中。

這是我的代碼:

$('.m-name').keyup(function(){monthlyButtonActive();}); 
$('.m-email').keyup(function(){monthlyButtonActive();}); 
$('.m-password').keyup(function(){monthlyButtonActive();}); 
$('.m-password-confirm').keyup(function(){monthlyButtonActive();}); 
$('.m-terms').change(function(){monthlyButtonActive();}); 

function monthlyButtonActive() 
{ 
    var complete = 0; 
    if($('.m-name').val().length > 2){ 
     complete++; 
    }else{ 
     complete = 0 
    } 
    if($('.m-email').val().length > 2){ 
     complete++; 
    }else{ 
     complete = 0 
    } 
    if($('.m-password').val().length > 2){ 
     complete++; 
    }else{ 
     complete = 0 
    } 
    if($('.m-password-confirm').val().length > 2){ 
     complete++; 
    }else{ 
     complete = 0 
    } 
    if($('.m-terms').is(':checked')){ 
     complete++; 
    }else{ 
     complete = 0 
    } 
    if(complete == 5){ 
     console.log(complete); 
     console.log('its now complete'); 
     $('.monthly-button').children('.orange-button').addClass('active-button'); 
    }else{ 
     $('.monthly-button').children('.orange-button').addClass('active-button'); 
    } 

所以,如果所有的字段不爲空,我添加了一個類上「主動按鈕」的按鈕,但如果不是我想拿類的它。但它不工作,我也想要它。

任何人都可以幫我嗎?

感謝

+0

您是否嘗試過移除以前的類然後添加新的類?或考慮添加和Id按鈕元素? – ThatAwesomeCoder

+3

如果完成是5這樣做是否一樣,有點無意義 –

回答

-1
$('.m-name').keyup(function(){monthlyButtonActive();}); 
$('.m-email').keyup(function(){monthlyButtonActive();}); 
$('.m-password').keyup(function(){monthlyButtonActive();}); 
$('.m-password-confirm').keyup(function(){monthlyButtonActive();}); 
$('.m-terms').change(function(){monthlyButtonActive();}); 

function monthlyButtonActive() 
{ 
    var complete = 1; 
    if($('.m-name').val().length<=2){   
     complete = 0 
    } 
    else if($('.m-email').val().length <=2){   
     complete = 0 
    } 
    else if($('.m-password').val().length<=2){   
     complete = 0 
    } 
    else if($('.m-password-confirm').val().length <=2){   
     complete = 0 
    } 
    else if($('.m-terms').is(':checked')==false){    
     complete = 0 
    } 
    if(complete == 1){ 
     console.log(complete); 
     console.log('its now complete'); 
     $('.monthly-button').children('.orange-button').removeClass('deactive-button').addClass('active-button'); 
    }else{ 
     $('.monthly-button').children('.orange-button').removeClass('active-button').addClass('deactive-button'); 
    } 
+0

爲什麼我的回答沒有用。我檢查過。 –

0

您有問題,因爲你做出完整= 0,如果該字段爲空。你不應該做任何事情。如果它不是空的,則提出完整的變量,否則完成保持不變。

$('.m-name').keyup(function(){monthlyButtonActive();}); 
$('.m-email').keyup(function(){monthlyButtonActive();}); 
$('.m-password').keyup(function(){monthlyButtonActive();}); 
$('.m-password-confirm').keyup(function(){monthlyButtonActive();}); 
$('.m-terms').change(function(){monthlyButtonActive();}); 

function monthlyButtonActive() 
{ 
    var m_name=0,m_email=0,m_password=0,m_password_confirm=0,m_terms=0; 
    if($('.m-name').val().length > 2){ 
     m_name=1; 
    } 
    if($('.m-email').val().length > 2){ 
     m_email=1; 
    } 
    if($('.m-password').val().length > 2){ 
     m_password=1; 
    } 
    if($('.m-password-confirm').val().length > 2){ 
     m_password_confirm=1; 
    } 
    if($('.m-terms').is(':checked')){ 
     m_terms=1; 
    } 
    if(m_name==1&&m_email==1&&,m_password==1&&m_password_confirm==1&&m_terms==1){ 
     console.log(complete); 
     console.log('its now complete'); 
     $('.monthly-button').children('.orange-button').addClass('active-button'); 
    }else{ 
     console.log(complete); 
     console.log('its not complete'); 
    } 
+0

雖然我只是雖然,它發生在鍵盤上,所以如果我輸入5個字母的名字,完整已經在5,然後將9後複選框被點擊 – virepo

+0

檢查更新的答案。這將解決這個問題。 – 2016-08-17 12:41:47

相關問題