2013-07-30 47 views
5

我的角的應用程序有一個登錄表單與電子郵件/用戶名輸入字段:角驗證輸入類型=「電子郵件」類型=「文本」

<input type="email" required/> 

輸入是類型=「電子郵件」,所以correct keyboard is displayed in iOS
但是驗證應該是type =「text」輸入以允許用戶名。

基本上我需要重寫角到驗證類型=「電子郵件」類型=「文本」
這裏是開始一個basic Plunker

注意:我已經使用NG模式來驗證對正則表達式的嘗試,但它似乎只對工作類型=「文本」

回答

5

我不認爲這是有可能改變如何輸入類型=」電子郵件「在角度進行處理,而不改變它的來源,但也許不是你可以嘗試:

<input type="text" required late-email /> 
angular.module('yourApp').directive('lateEmail', function() { 
    return { 
     priority: -1, 
     link: function(scope, elem, attrs) { 
      elem.attr('type', 'email'); 
     } 
    }; 
}); 
這裏

重要的是優先級,爲angularjs輸入指令運行所需要的(鏈接)第一等都將採用」文本'作爲輸入類型,那麼lateEmail將ch ange輸入類型到電子郵件。

+0

用Codefather的解決方案將Plunk分叉。我現在沒有我的iPhone,但看着檢查員,我認爲它會工作 - http://plnkr.co/edit/GAlhFQlMhGNHeSs2TKrJ?p=preview –

+0

在iPad上測試,它的工作原理。感謝Codefather,標記爲正確。 –