簡體   English   中英

Select2標簽:按下“ Enter”,“ Space”,“ Tab”后,在輸入中添加電子郵件格式標簽

[英]Select2 Tags: Add email format tags in input after keypress “Enter”, “Space”, “Tab”

我只有一個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: "JohnDoe@example.com",
             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 = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[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>

標簽沒有添加,有什么建議嗎?

這是一個解決方案,只需要您更改腳本

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();
    }
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM