提交后jQuery openPopup模式不会关闭

时间:2016-03-15 13:47:06

标签: javascript php jquery

我已经设置了一个模态弹出框来获取输入,然后通过ajax存储。它已成功插入值...但提交后弹出窗口仍然存在。我尝试了像window.close(); ...('#modalname')。hide();但没有什么对我有用。请帮我解决这个问题。

这是我工作代码的一部分,

                        <!--css for display subject in row (starts)-->
                        <span class="b-messages__subject">
                            <span>
                                <a href="index.php?subject=<?php echo $results[$result]['subject']; ?>&username=<?php echo $results[$result]['username']; ?>#openModal" onclick="fetch_select(<?php echo $results[$result]["id"]; ?>);">
                                    <?php echo "Reply"; ?>
                                </a>
                            </span>
                        </span>
                        <!--css for display subject in row (ends)-->

然后是模态div,

                        <!--Modal box starts-->
                        <div id="openModal" class="modalDialog" align="center">
                            <div>
                                <a href="<?php echo ('/'); ?>yandex" title="Close" class="close">X</a>
                                <h2><strong>Reply Message</strong></h2>
                                <br>
                                <label><strong>Enter Your Message Here</strong></label>
                                <br>
                                <label><b>From:</b>&nbsp;&nbsp;<?php echo $user; ?></label>
                                <span id="content-info" class="info"></span>
                                <br/>
                                <!--set session username for hidden-->
                                <input type="hidden" name="username" id="username" value="<?php echo $user; ?>">
                                <textarea name="content" id="content" class="demoInputBox"></textarea>
                                <!--send fusername with hidden-->
                                <input type="text" name="fusername" id="fusername" value="<?php echo $_GET["username"] ?>">
                                <!--send subject with hidden-->
                                <input type="text" name="subject" id="subject" value="<?php echo $_GET["subject"] ?>">
                                <!--status init="0"-->
                                <input type="hidden" name="status" id="status" value="0">
                                <!--time-->
                                <input type="hidden" name="created" id="created" value='<?php echo date("Y-m-d H:i:s"); ?>'>
                                <br><br>
                                <input type="button" name="submit" id="but-sub" value="Send Message" onClick="add();" />
                            </div>  
                        </div>
                        <!--Modal box ends-->

我的js文件包含:

function add() { 
        /*initialize valid and assign to function validate()*/   
        var valid = validate(); 
        //alert(valid); returns true 
        //if function validate() returns valid.. then go away 
        if (valid){
            $.ajax({
                url: "add.php",
                type: "POST",
                data: {
                    username: $("#username").val(),
                    fusername: $("#fusername").val(),
                    subject: $("#subject").val(),
                    content: $("#content").val(),
                    status: $("#status").val(),
                    created: $("#created").val()}
            });
        }
    }

2 个答案:

答案 0 :(得分:0)

将表单元素放在<form></form>中。 如果形式被提交,模态应该关闭。

答案 1 :(得分:0)

我不确定您是否使用JSON,但您肯定应该检查传递或失败的响应。尝试在这样的数据之后添加成功(不包括检查通过或失败,但是应该在AJAX成功响应时关闭模态):

$.ajax({
    url: "add.php",
    type: "POST",
    data: {
        username: $("#username").val(),
        fusername: $("#fusername").val(),
        subject: $("#subject").val(),
        content: $("#content").val(),
        status: $("#status").val(),
        created: $("#created").val()
    },
    success: function (returndata) {
        //try this first
        $("#openModal").modal('hide');

        //try this second and uncomment if you aren't using jquery/bootstrap modal
        //$("#openModal").hide();

    }
});