尝试使用jQuery和PHP显示模式对话框

AKo*_*Kor 0 jquery modal-dialog

我有一个电子邮件按钮,点击后,会弹出一个模态jQuery UI对话框,显示一个用于通过电子邮件发送给自己的按钮.我的代码在这里:

<input type="button" value="Email to me" onClick="$("#emailModal").dialog({title:'Email It Along',height:300,width:350,modal:true,resizable:false});"/>
Run Code Online (Sandbox Code Playgroud)

这是#emailModal:

<div id="emailModal">
<p><input type="button" value="Email to me" onClick="$('#emailPost').submit()" id="emailJQButton"/></p>
</div>
Run Code Online (Sandbox Code Playgroud)

但是,当我单击按钮时,没有任何反应,并且没有弹出对话框.我查看了所有代码,但找不到问题.有帮助吗?

编辑: 发现问题,但我还有一个问题:

if($_SESSION["loggedIn"] == 1)
                        {
                            echo "<form action='php/emailPost.php' method='POST' class='inline' id='emailPost'>";
                            echo "<input type='hidden' value='" . $_SESSION["email"] . "' name='emailAddress'>";
                            echo "<input type='button' value='Email To Me' onClick='$(\"#emailPost\").submit();$(\"#emailModal\").dialog('close');'/>";
                            echo "<input type='hidden' name='passedCoupID' value='" . $coupID . "'/>";
                            echo "</form>";
                            echo "<h3>Or</h3>";
                            echo "<form action='php/emailPost.php' method='POST' class='inline' id='emailPost2'>";
                            echo "<input type='text' value='Enter an Email' name='emailAddress' style='display: inline-block;'>";
                            echo "<input type='button' value='Email' onClick='$(\"#emailPost2\").submit();$(\"#emailModal\").dialog('close');'/>";
                            echo "<input type='hidden' name='passedCoupID' value='" . $coupID . "'/>";
                            echo "</form>";
                        }
                        else
                        {
                            echo "<form action='php/emailPost.php' method='POST' class='inline' id='emailPost2'>";
                            echo "<input type='text' value='Enter an Email' name='emailAddress' style='display: inline-block;'>";
                            echo "<input type='button' value='Email' onClick='$(\"#emailPost2\").submit();$(\"#emailModal\").dialog('close');'/>";
                            echo "<input type='hidden' name='passedCoupID' value='" . $coupID . "'/>";
                            echo "</form>";
                        }
Run Code Online (Sandbox Code Playgroud)

我现在用PHP echo显示它,我知道应该需要一些特殊的转义规则.既不是内联函数,也不是emailPost提交,也不是关闭对话框.

Thi*_*ter 6

"如果引用它们,则不能在属性中使用".用'#emailModal'而不是"#emailModal".

但是,正确的解决方案是:

<input type="button" value="Email to me" id="emailButton" />
<script type="text/javascript">
    $('#emailButton').click(function(e) {
        e.preventDefault();
        $("#emailModal").dialog({title:'Email It Along', height:300, width:350, modal:true, resizable:false});
    });
</script>
Run Code Online (Sandbox Code Playgroud)