javascript - 成功的 ajax 返回后模态框不会关闭

标签 javascript php jquery mysql modal-dialog

我有一个模式窗口,每当屏幕理想状态持续 3 分钟时就会弹出。它要求输入 PIN 码,输入 PIN 码后,单击该按钮上的“继续”按钮。使用此“继续”按钮时,会在数据库表中进行插入。现在我的问题是输入 PIN 码并单击“继续”按钮时,模式不会隐藏或自行关闭。虽然数据库插入完成了,但是模态并没有隐藏。这可能出了什么问题。任何建议都会非常有帮助。我的代码,

 <div class="modal fade" id="myModal"  role="dialog" data-backdrop="static" data-keyboard="false">

    <div class="modal-dialog">

      <!-- Modal content-->

<form name="frmActive" id="frmActive" action="" method="post">      
      <div class="modal-content" style="height:250px;">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal">&times;</button>
          <h4 class="modal-title">Ideal Time activation</h4>
        </div>
        <div class="modal-body">
          <p>Please enter activation <b>PIN</b><font color="red">*</font><br>

          <p id="msg" style="color:#F00;"></p>
          <input type="password" name="pin" id="pin" value="" maxlength="4"  onKeyUp="checkNumber(this)"  class="form-control" placeholder="Enter Pin">
          <input type="hidden" id="inactiveTime">
          <p style="font-size:11px"><b><font color="red">*</font><font color="grey"><b>PIN</b><i> is mentioned in your welcome email.</font></i></b></p><br>

        </div>
        <div class="modal-footer">

       <button type="button" id="btnSubmit" name="submit" value="submit" class="btn btn-success"><i class="glyphicon glyphicon-floppy-disk"></i> Continue</button> 
       <input type="hidden" id="module_id" value="<?php echo $moduleId ; ?>">
       <input type="hidden" id="chapter_id" value="<?php echo $chapterId ; ?>">

        </div>
      </div>
</form>      
   </div>
  </div>
jQuery("#btnSubmit").on("click", function(){

    var pin             =   jQuery("#pin").val();
    var chapter_id      =   jQuery("#chapter_id").val();
    var module_id       =   jQuery("#module_id").val();
    var nowDate         =   jQuery.now();
    var inactiveTime    =   jQuery("#inactiveTime").val();
    var seconds         =   (nowDate - inactiveTime) / 1000;

    var formData    =   new FormData();
        formData.append("pin", pin);
        formData.append("seconds", seconds);
        formData.append("module_id", module_id);
        formData.append("chapter_id", chapter_id);

      $.ajax({
        url: "processActivation.php",
        type: "POST",
        data: formData,
        processData: false,
        contentType: false,

        success: function(result){          


           if(result['status'] == 'active')

            {

                jQuery('#myModal').modal('hide');
            }
            else
            {

                $("#msg").html(result) ;

            }

        }
      });

});

和processActivation.php,

<?php
$uid        =   $_SESSION['session_user_id'];
$dobCheck   =   $db->idToField("tbl_user", "dob", $uid);
$dob        =   explode("-", $dobCheck);

$pin            =   $_REQUEST['pin'];
$moduleId       =   $_REQUEST['module_id'];
$chapterId      =   $_REQUEST['chapter_id'];
$time_taken     =   $_REQUEST['seconds'];
$created        =   date("Y-m-d h:i:s");
if($pin != $dob[0])
{

    echo "Please enter valid PIN."; die;
}
else
{

    $dataactivation =   array("user_id"=>$uid, "module_id"=>$moduleId, "chapter_id"=>$chapterId,"time_taken"=>$time_taken, "created"=>$created);
    $db->query_insert("tbl_activation", $dataactivation);   


  header('Content-Type: application/json', true, 200); 
  echo json_encode(array('status' => 'active')); 
  exit(); 
}

?>  

我想知道是否

header('Content-Type: application/json', true, 200); 
      echo json_encode(array('status' => 'active')); 
      exit();

正确的方法是?因为上述所有操作都正确执行,并且 console.log(result) 没有显示任何内容。上面几行有问题。如果有人指出其中的错误,将非常有帮助。

最佳答案

使用 jQuery 中的隐藏函数。

jQuery('#myModal').hide();

据我所知modal('hide')用于引导模式。

关于javascript - 成功的 ajax 返回后模态框不会关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50446824/

相关文章:

javascript - jQuery 更改包含元素的宽度与幻灯片

javascript - jQuery 仅在页面刷新时触发

javascript - 如何使我的图片库响应

php - 在卖家网站上 promise 付款

php - 更新composer.json中的symfony/symfony版本

php - 如何在两个条件下增加 php 中的计数?

javascript - 渲染 js.erb 部分时没有点击事件

javascript - 我的 View 不加载 Views 文件夹外的 CSS/JS 文件

jquery - 数据表添加组合框作为列

Jquery 包含和不包含链接