事件只发射一次

时间:2018-02-09 08:16:28

标签: javascript jquery

我有一个检查值的脚本,如果它等于''然后向用户显示一条消息。这没问题。但我似乎对代码有两个问题。

首先,当我第一次运行代码时它工作正常。但如果我再次运行它,没有任何反应。我必须刷新页面才能再次运行。

其次,我的按钮是提交类型,即使我有e.preventDefault();在代码中,它提交并且它不应该这样做。

如果有人能指出我的错误并帮助我继续前进,我将不胜感激。非常感谢

html
<button type="submit" id="retrieve" class="btn btn-primary">Retrieve</button>


$("#USRboxrtv").submit(function(e) {
      e.preventDefault();

      var activity = $("#user").val();
      var service = $("#activityRadios").val();
      var dept = $("#rtvdept").val();

      if (dept == "") {
        $("#deptmessage").html('You must enter a department').css({
          'color': 'red',
          'font-size': '14px'
        }).fadeOut(2000);

        return false;
      }

      var data = $("#USRboxrtv").serialize();
      $.ajax({
        type: "POST",
        url: "/lstor/users/requests/boxes/retrieve/brtv.php",
        data: data,
        success: function(data) {
          {
            $('.message').html(data).fadeIn(3000).fadeOut(3000);
            $("#USRboxrtv").get(0).reset();
            $("#box_rtv").load("refreshBox.php");
            $("#rtvdept").trigger("chosen:updated");
            $("#address").trigger("chosen:updated");
            $("#box_rtv_chosen").find('option:selected').remove();
            $("#box_rtv").html('');
            $("#box_rtv").trigger("chosen:updated");
          }
        }
      });
    });

1 个答案:

答案 0 :(得分:2)

调用函数fadeOut()后,该元素将被隐藏,直到您再次显示它为止。 所以你需要在淡出它之前调用函数show()

请参阅以下内容:

variant
$("#retrieve").ready(function(){

  $("#USRboxrtv").submit(function(e) {
      e.preventDefault();
      $("#deptmessage").html('You must enter a department').css({
        'color': 'red',
        'font-size': '14px'
      }).show().fadeOut(2000);
  });

});