2014-10-06 107 views
0

我有一个input选择二标签:输入添加电子邮件格式的标签后,按键“输入”,“空间”,“标签”

 <label id="email2_error">Email is not in the correct format</label> 

    <input type="text" style="width:500px" id="emailTags" placeholder="add email" /> 

按键之后我打电话的方法addTag

 <script type="text/javascript"> 
    $(document).ready(function() { 
     $("select#emailTags").select2({ 
      placeholder: "[email protected]", 
      allowClear: true 
     }); 

jQuery("#emailTags").keypress(function (event) { 

        //See if the key pressed is 'space' 
        if (event.which == 32) { 
         addTag(); 
        } 
        //See if the key pressed is 'enter' 
        if (event.which == 13) { 
         addTag(); 
        } 
        //See if the key pressed is 'tab' 
        if (event.which == 8) { 
         addTag(); 
        } 

       }); 

    }); 



      function addTag() { 

       var email = $('#emailTags').val() 
       if (!validateEmail(email)) { 
        $("label#email2_error").show(); 

        return false; 
       } else { 

        $("label#email2_error").hide(); 
        //Adding the tag 
       $('#emailTags').select2('val', $('#emailTags').val()); 
       } 
function validateEmail(email) { 

       var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
       return re.test(email); 
      } 
     </script> 

的标签没有添加,有人建议?

+0

你不是应该把报价里面的正则表达式? – 2014-10-06 16:31:03

+0

@ISuthanBala方法validateEmail做工精细,在控制台我测试,它工作正常 – Alex 2014-10-06 16:39:57

回答

0

这里是一个解决方案只需要更改脚本

if (self.isOpen()) { 
    if (key === KEYS.ENTER) { 
     self.trigger('results:select'); 

     evt.preventDefault(); 
    } else if ((key === KEYS.SPACE && evt.ctrlKey)) { 
     self.trigger('results:toggle'); 

     evt.preventDefault(); 
    } else if (key === KEYS.UP) { 
     self.trigger('results:previous'); 

     evt.preventDefault(); 
    } else if (key === KEYS.DOWN) { 
     self.trigger('results:next'); 

     evt.preventDefault(); 
    } else if (key === KEYS.ESC || key === KEYS.TAB) { 
     self.close(); 

     evt.preventDefault(); 
    } 
    } else { 
    if (key === KEYS.ENTER || key === KEYS.SPACE || 
     ((key === KEYS.DOWN || key === KEYS.UP) && evt.altKey)) { 
     self.open(); 

     evt.preventDefault(); 
    } 
    } 

更换

if (self.isOpen()) { 
    if (key === KEYS.ENTER || key === KEYS.TAB) { 
     self.trigger('results:select'); 

     evt.preventDefault(); 
    } else if ((key === KEYS.SPACE && evt.ctrlKey)) { 
     self.trigger('results:toggle'); 

     evt.preventDefault(); 
    } else if (key === KEYS.UP) { 
     self.trigger('results:previous'); 

     evt.preventDefault(); 
    } else if (key === KEYS.DOWN) { 
     self.trigger('results:next'); 

     evt.preventDefault(); 
    } else if (key === KEYS.ESC || key === KEYS.TAB) { 
     self.close(); 

     evt.preventDefault(); 
    } 
    } else { 
    if (key === KEYS.ENTER || key === KEYS.TAB || key === KEYS.SPACE || 
     ((key === KEYS.DOWN || key === KEYS.UP) && evt.altKey)) { 
     self.open(); 

     evt.preventDefault(); 
    } 
    }