2013-11-03 19 views
0

我想爲用戶提供表單反饋,因爲他們不關注輸入和提交表單。它適用於我只有focusout方法,但失敗時,我添加提交方法。爲什麼.focusout當.submit被調用時 - jquery

(function(){ 
     $('input').focusout(function(){ 
      if($(this).val() == ""){ 
       $('.jsError').html('<p class="alert alert-danger text-center">'+$(this).attr('name')+' is required.</p>'); 
      } 
     }); 

     //when the submit button is pressed 
     $("#register").click(function(event){ 
      //var input = $(this).parent().find('input[value=""]'); 
      if(!input.length){ 
       event.preventDefault(); 
       $('.jsError').html('<p class="alert alert-danger text-center">'+Please fill in the form+'</p>'); 
      }else{ 
       //set variables 
       var email = $('#email'), 
        emailConf = $('#emailConf'), 
        pass = $('#pass'), 
        passConf = $('#passConf'), 
        stageName = $('#stageName'), 
        mainClub = $('$mainClub'), 
        mainSkill = $('#ent_main_skill'), 
        termsAgree = $('#agreeToTerms'); 
      } 
     }); 
})(); 

我在想這是event.preventdefault,但它本身似乎沒有做任何事情。

+0

你的邏輯應該是相反的沒有?如果'input.length'真的很糟糕,那意味着你查詢沒有值的元素會出現一些錯誤。 – plalx

回答

1

從我可以通過查看註釋行看到的內容,您試圖查詢所有不具有值的輸入。這意味着如果input.length大於0,則會出現錯誤,但如果是0,則表示所有表單字段均已填充。

你實現的邏輯則相反,它應該是:

if (input.length) { 
    //errors 
} else { 
    //no errors 
} 
+0

這可能會解釋爲什麼防止默認不起作用可能,但不是爲什麼當我添加提交方法時,忽略停止工作爲什麼 – NSaid

+0

@ user2251229那麼,添加點擊偵聽器時,控制檯中是否有任何JS錯誤?告訴你,你取消了定義'input'的代碼行。如果它不起作用,請設置一個jsfiddle示例。 – plalx

+0

http://jsfiddle.net/#&togetherjs=0mb4FNKvhs – NSaid

相關問題