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

尝试使用jQuery和PHP显示模式对话框,jquery,modal-dialog,Jquery,Modal Dialog,我有一个电子邮件按钮,当点击它时,应该会弹出一个模式jqueryui对话框,显示一个自己发送电子邮件的按钮。我的代码在这里: <input type="button" value="Email to me" onClick="$("#emailModal").dialog({title:'Email It Along',height:300,width:350,modal:true,resizable:false});"/> 但是,当我点击按钮时,什么也没有发生,也没有弹出对话框。

我有一个电子邮件按钮,当点击它时,应该会弹出一个模式jqueryui对话框,显示一个自己发送电子邮件的按钮。我的代码在这里:

<input type="button" value="Email to me" onClick="$("#emailModal").dialog({title:'Email It Along',height:300,width:350,modal:true,resizable:false});"/>
但是,当我点击按钮时,什么也没有发生,也没有弹出对话框。我已经检查了所有代码,没有发现问题。有什么帮助吗

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

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>";
                        }

我现在用PHP echo显示它,我知道这需要一些特殊的转义规则。不过,内联函数都不能工作,emailPost提交和对话框都不能关闭。

您的代码撇号中有一个输入错误

onClick="$("#emailModal").
应该是

onClick="$('#emailModal').
如果属性也被引用,则不能在属性中使用。使用“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>

我想你应该用

<input type="button" value="Email to me" onClick="$('#emailModal').dialog({title:'Email It Along',height:300,width:350,modal:true,resizable:false});"/>
问题在于单击按钮时,双引号内有双引号

onClick="$("#emailModal").dialog({...
我建议您不要使用onClick,而是使用jQuery绑定事件

<input type="button" value="Email to me" id="sendEmail" />

<div id="emailModal">
  <p><input type="button" value="Email to me" id="emailJQButton"/></p>
</div>

<script>
  $(function(){
    $("#emailModal").dialog({
      title: 'Email It Along',
      height: 300,
      width: 350,
      modal: true,
      resizable: false,
      autoOpen: false
    });

    $('#sendEmail').click(function(){
      $("#emailModal").dialog('open');
    });

    $('#emailJQButton').click(function(){
      $('#emailPost').submit();
    });
  });
</script>

您可以尝试安装Firebug并逐步完成代码。
onClick="$("#emailModal").dialog({...
<input type="button" value="Email to me" id="sendEmail" />

<div id="emailModal">
  <p><input type="button" value="Email to me" id="emailJQButton"/></p>
</div>

<script>
  $(function(){
    $("#emailModal").dialog({
      title: 'Email It Along',
      height: 300,
      width: 350,
      modal: true,
      resizable: false,
      autoOpen: false
    });

    $('#sendEmail').click(function(){
      $("#emailModal").dialog('open');
    });

    $('#emailJQButton').click(function(){
      $('#emailPost').submit();
    });
  });
</script>