2016-07-22 54 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