簡體   English   中英

電子郵件驗證的UI對話框不顯示任何對話框

[英]UI dialog for e-mail validation not showing any dialog

    <html>
    <head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
    <script type="text/javascript">
        //================UI dialog===========
        $(function() {
            $( "#dialog" ).dialog({
                autoOpen: false,
                show: {
                    duration: 100
                },
                hide: {
                    duration: 100
                }
            });
        });
    </script>
    <script type="text/javascript">
    function validation()
        {
            var emailField=document.form.email.value;
            var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
            if (reg.test(emailField.value) == false) 
            {
                $( "#dialog" ).dialog( "open" );
        p_dialog.innerHTML="Please enter valid email ... ";         
                document.form.name.select();
                return false;
            }
        }
    </script>
    </head>

    <body>
        <div id="dialog" title="Basic dialog">
            <p id="p_dialog"></p>
        </div>

    <form action="data.php" method="post" name="form" onsubmit="return validation()" enctype="multipart/form-data"> 

        <input type="text" name="email" style="width:100%" id="email">
        <input type="submit" name="submit"  value="submit" >
    </form>    
    </body>
    </html>

在這里,我使用UI對話框來檢查電子郵件字段的有效性,但不會通過以下方式顯示該對話框

.dialog("open")

我以相同的形式用於必填字段和名稱字段的相同代碼可以正常工作,但是當我將其應用於電子郵件時,它不會顯示任何消息。

function validation()
        {   
            var emailField=document.form.email.value;
            var filter = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
            if (filter.test(emailField)) { 
                return true; 
            }
            else {
                  document.getElementById("email").focus();
                  $( "#dialog" ).dialog( "open" );
        p_dialog.innerHTML="Please enter valid email ... ";         
               //document.form.name.select();
                return false;
            } 
        }

您可以使用正則表達式來驗證電子郵件ID。 以下是使用的標准之一:

 <asp:RegularExpressionValidator  ID="regEmail" runat="server" ControlToValidate="your_textboxid" ErrorMessage="Please enter valid Email ID" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" SetFocusOnError="true"></asp:RegularExpressionValidator>
                                                </td>

\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

否則,請將上述正則表達式放入您的JS代碼中,即可正常工作。

查看已編輯的JS代碼

 <script type="text/javascript">
    function validation() {
        var emailField = document.form.email.value;
        var reg =  \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*;
        if (reg.test(emailField.value) == false) {
            $("#dialog").dialog("open");
            p_dialog.innerHTML = "Please enter valid email ... ";
            document.form.name.select();
            return false;
        }
    }
</script>

我將假設您提供的代碼具有比您向我們展示的更多的功能,因為看起來您正在嘗試使用jQuery,但是沒有在示例中加載它。 (編輯:當我寫這篇文章時,它不在示例中)

話雖如此,在您的正則表達式中,+必須位於]之后和)之前。

var reg = /^([A-Za-z0-9_\-\.]+)\@([A-Za-z0-9_\-\.]+)\.([A-Za-z]{2,4})$/;

暫無
暫無

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

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