簡體   English   中英

如何檢查輸入是否像電子郵件地址然后激活提交按鈕?

[英]How to check if input looks like an email address and then activate submit button?

在激活提交按鈕之前,我使用以下代碼檢查所有表單字段是否不為空。

<script type="text/javascript">
            function checkForm() {
                var cansubmit = false;
                $('form input[type="text"]').each(function (index, element) {
                    if (element.value == "") {
                        cansubmit = true;
                    }
                });
                document.getElementById("uploadButton").disabled = cansubmit;
            }
        </script>

如何編輯此代碼,以便在激活提交按鈕之前檢查電子郵件字段是否包含電子郵件地址?

更新

我將代碼更改為此,它似乎工作。 它檢查它是否包含@ (而不是作為第一個符號)和. (而不是作為第三個符號)。

這是一個邏輯代碼還是應該更容易?

<script type="text/javascript">
            function checkForm() {
                var cansubmit = false;
                $('form input[type="text"]').each(function (index, element) {
                    if (element.value == "") {
                        cansubmit = true;
                    }
                });
                $('form input[type="email"]').each(function (index, element) {
                    if (element.value.indexOf("@") <= 0) {
                        cansubmit = true;
                    }
                    else if (element.value.indexOf(".") <= 2) {
                        cansubmit = true;
                    }
                });
                document.getElementById("uploadButton").disabled = cansubmit;
            }
        </script>

您可以使用答案中的正則表達式來驗證電子郵件地址:

if ((element.value == "" && element.type != "email") || (element.type == "email" && !/([!#-'*+/-9=?A-Z^-~-]+(\.[!#-'*+/-9=?A-Z^-~-]+)*|"([]!#-[^-~ \t]|(\\[\t -~]))+")@([0-9A-Za-z]([0-9A-Za-z-]{0,61}[0-9A-Za-z])?(\.[0-9A-Za-z]([0-9A-Za-z-]{0,61}[0-9A-Za-z])?)*|\[((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|IPv6:((((0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}):){6}|::((0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}):){5}|[0-9A-Fa-f]{0,4}::((0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}):){4}|(((0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}):)?(0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}))?::((0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}):){3}|(((0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}):){0,2}(0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}))?::((0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}):){2}|(((0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}):){0,3}(0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}))?::(0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}):|(((0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}):){0,4}(0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}))?::)((0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}):(0|[1-9A-Fa-f][0-9A-Fa-f]{0,3})|(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3})|(((0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}):){0,5}(0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}))?::(0|[1-9A-Fa-f][0-9A-Fa-f]{0,3})|(((0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}):){0,6}(0|[1-9A-Fa-f][0-9A-Fa-f]{0,3}))?::)|(?!IPv6:)[0-9A-Za-z-]*[0-9A-Za-z]:[!-Z^-~]+)])/.test(element.value))) {

使用<input type="email">inputElement.validity的組合來檢查輸入是否有效。 文檔

暫無
暫無

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

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