Javascript 使用jquery滚动到可滚动的pop div atomaticaly的顶部

Javascript 使用jquery滚动到可滚动的pop div atomaticaly的顶部,javascript,jquery,html,css,ajax,Javascript,Jquery,Html,Css,Ajax,首先,我有一个弹出div,其中包含一个表单 这是我的部门 <div class="addnewrule" id="add_message_0"> <form method="post" action="" id="frmadd"> <input type="hidden" name="filter" value="1"> <input name="rule_id" type="hidden" value="0

首先,我有一个弹出div,其中包含一个表单

这是我的部门

<div class="addnewrule" id="add_message_0">
       <form method="post" action="" id="frmadd">
        <input type="hidden" name="filter" value="1">
        <input name="rule_id" type="hidden" value="0">
      <table class="table-responsive" width="100%" border="0" cellspacing="0" cellpadding="10" id="" style="text-align:center; margin-top:0px;">
      <tr>
        <td colspan="2" align="left"><div id="display_msg_0"></div></td>
      </tr>
      <tr>
        <td width="40%" align="left">Name:</td>
        <td width="60%" align="left"><input class="input_field" name="rule_name" type="text"></td>
      </tr>
      <tr>
        <td align="left">Type:</td>
        <td align="center">
        <input type="radio" name="rule_type" value="0" style="display:none;"   />
        <input type="radio" name="rule_type" value="1" checked="checked" style="display:none;"  />
        <div class="btn-group equal_btn">
            <button id="block_click" class="btn btn-default" type="button" onclick="setRules(0);">Block Clicks</button>
            <button id="filter_click" class="btn btn-default active" type="button" onclick="setRules(1);">Filter Clicks</button>
          </div></td>
      </tr>
      <tr>
        <td align="left">Rule Active:</td>
        <td align="center">
        <input type="radio" id="active_0" name="active" value="1" checked="checked" style="display:none;"  />
        <input type="radio" id="inactive_0" name="active" value="0" style="display:none;" />
        <div class="btn-group">
            <button type="button" id="status_enb_0" class="btn btn-default active_btn active" onclick="setruleStatus(0,1);">Enable</button>
            <button type="button" id="status_dis_0" class="btn btn-default inactive_btn" onclick="setruleStatus(0,0);">Disable</button>
          </div></td>
      </tr>
      <tr>
        <td align="left">Campaign ID:</td>
        <td align="left"><input class="input_field" name="camp_id" type="text" /></td>
      </tr>
      <tr>
        <td align="left" id="rRange">Filter IP Ranges:</td>
        <td align="left"><table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td style="padding:0;" width="45%"><input class="input_field" name="start_ip" type="text" /></td>
              <td width="10%" align="center">To</td>
              <td style="padding:0;" width="45%" align="right"><input class="input_field" name="end_ip" type="text" /></td>
            </tr>
          </table></td>
      </tr>
      <tr>
        <td align="left" id="rUAs">Filter users agents that contains:</td>
        <td align="left"><input class="input_field" name="user_agent" type="text" /></td>
      </tr>
      <tr>
        <td align="left" id="rRefs">Filter referers that contains:</td>
        <td align="left"><input class="input_field" name="referer" type="text" /></td>
      </tr>
      <tr id="rUrl" style="display:none;">
        <td align="left">Send Blocked Clicks to:</td>
        <td align="left"><input class="input_field" type="text" id="rule_url" name="rule_url" value="" /></td>
      </tr>
      <tr>
        <td align="left" colspan="2"><table class="copypaste" width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td><a href="javascript:void(0)" class="btn blue_button tab2" onclick="submitRule('frmadd',0);">Apply</a> <a href="javascript:void(0)" class="btn orange_button tab2" onclick="cancel_popup('add_new_rule')" >Cancel</a></td>
            </tr>
          </table></td>
      </tr>
    </table>
    </form>
    </div>
由于弹出窗口是一个可滚动的div,因此我想滚动(仅在弹出窗口div内)到顶部,以便显示带有错误消息的消息div

这是我如何得到屏幕的

我使用这段if代码滚动到弹出div的顶部以显示错误消息div

但这段代码似乎不起作用

我做错了什么

$("#display_msg_"+rule_id).html(jData.error);
$("#display_msg_"+rule_id).addClass('error');
var child_div = $("#display_msg_"+rule_id);
var parent_div = $("#add_message_"+rule_id);
parent_div.scrollTop(parent_div.scrollTop() + child_div.position().top);

用这个替换你的最后一行代码
父分区滚动顶(0,0)

我将建议一个非常简单的方法:

$("#apply_button").click(function () { 
  var error_message = $("#your_error_message").css("display");

  if (error_message != "none") {
    $("#add_message_0").scrollTop(0);
  }; 
});
代码不言而喻


BR

您只能使用css。这是你的表格

<div>
<form class="has-error">
<p>error</p>
<input name="" value="">
</form>
<div>
高度将使用错误消息保护您当前的截面高度

穿上这样的衣服

如果该消息在单击按钮时不可见,请将其添加到单击功能代码中

$( '#add_message_1' ).delay( 200 ).animate({scrollTop: 0 }, 300);}
div{ overflow-y: scroll; }
div .has-error{ height: 400px; }
$( '#add_message_1' ).delay( 200 ).animate({scrollTop: 0 }, 300);}