anglejs形式のフォームフィールドが必要なので、複数の電子メールIDをコンマで区切って入力することができ、$ scopeオブジェクトを配列形式で更新できます。 たとえば、フォームフィールドに私は電子メールidsを入力しました:[email protected]、[email protected]、[email protected] 今私の$ scope変数( '$ scope.emails')で、私はそれらを[ "[email protected]"、 "[email protected]"、 "[email protected]"]をクリックしてフォームにPOSTします。 私はangularjsで初心者であり、この段階で固執しています。このような状況から抜け出すために私を助けてください。anglejsフォームフィールドに複数のメールIDを入力するにはどうすればよいですか?
答えて
することはでき
- バインド
$scope.emailField
のようなものとして、フォームフィールドの値(NG-モデル)。 $scope.emailField
(コンマによって分割)の値を解析するスコープに機能をバインドするために使用ng-blur
- 戻って
$scope.emails
に結果配列を割り当てます。
あなたの提案に感謝します。私は電子メールIDの検証を同時にチェックしたいのですが、私は何ができますか? –
@AmandeepSachan次に、対応する**正規表現**を定義し、入力フィールドにangleの組み込み 'ng-pattern'指示文を使用して、' $ scope.emailField。$ valid'から真偽を得ることができます。ユーザーに独自のカスタムエラーメッセージを表示します。 –
あなたは、この目的の
ためng-tags-inputを使用するか、NG-モデルセッターゲッターまたは任意のイベントにこのコード
return text.split(",");
を使用することができます
私は@Leonリーのソリューションがあると思います良いものですが、代替案を追加するには、REGEXを使用してフィールドを入力してからサーバーに送信してください。
/\s*(?:([a-z0-9.!#$%&’*+=?^_`{|}~-][email protected](?:[a-z0-9-]+\.){1,3}(?:[a-z0-9-]+)(?::[0-9]+)?))\s*/gi
この表現は、あらゆる種類の電子メールを受け入れ、それぞれの一致がそれぞれの一致するグループに入れられます。あなたはそのようにようにそれを処理します:
function processEmails (fieldValue)
{
var output = [];
var match = fieldValue.match (emailRegex);
if (!match)
{
//No emails entered. Handle error here
}
else
{
//The first index (0) is not a matching group
for (var i = 1; i < match.length; i++)
{
output.push (match[i]);
}
}
return output;
}
テストするには:https://regex101.com/r/glZrjC/1
@DominicAcquilinaあなたの親切な提案をありがとう。 –
http://angular-ui.github.io/ui-select/demo-multiple-selection.html –
@MikeMcCaughan、おかげであなたの応答のために私はドロップダウンから電子メールidsを選択する必要はありません。私は電子メールIDを手動で入力する必要があります。 –