2016-07-22 44 views
0

嘗試編寫驗證庫,但卡在某處。在使用標誌執行的對象中停止函數

var validation_event = { 
    mandatory: function(that) { 
     if (!$(that).val() && $(that).data('placeholder')) { 
     alert('Please fill in ' + $(that).data('placeholder') + '.'); 
     return false; 
     } 
    }, 

    email: function(that) { 

     var regex = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/; 
     if ($(that).val() == '' || !regex.test($(that).val())) { 
     alert('Please make sure the ' + $(that).data('placeholder') + ' is valid.'); 
     return false; 
     } 
    } 
    } 

https://jsfiddle.net/wvzbq9h2/

嘗試點擊提交,你會看到有2個警報。除此之外,事情工作正常。

+0

什麼又是你的問題?該示例在您提供的jsfiddle鏈接中正常工作。 –

+0

@ sgarcia.dev停止驗證第一個錯誤。不應該有第二次警報 – eltonkamami

+1

@ sgarcia.dev它觸發了兩次警報,我不希望 –

回答

0

檢查的值返回繼續驗證和$.each返回如果是假的

continue_validate = validation_event[val](self); 
    if(!continue_validate){ 
     return false; 
    } 

Updated JsFiddle

+0

它不起作用,不提醒無效地址。再次檢查您的代碼 –

+0

@EuniceChia更新了代碼。自定義元素屬性需要「數據」前綴。如果沒有錯誤發生,驗證方法應該返回true。 – eltonkamami