Jquery 提交表单时是否滚动到ID?

Jquery 提交表单时是否滚动到ID?,jquery,Jquery,我希望有人能帮助我。我正在使用一个名为Machform的表单脚本。我遇到的问题是,当我的表单位于页面的一半时,用户提交表单时,他们会自动发送到页面的顶部,因此必须向下滚动到表单,查看是否有任何错误,或者是否显示成功消息,以验证表单已成功发送 表单本身被包装在一个带有ID(#mf#u占位符)的div中。我一直在寻找一种方法,在单击submit按钮时让页面滚动到此ID,但我对jquery或javascript一无所知。我遇到了一些听起来很有希望的事情,例如(由于我缺乏关于如何实现代码的知识而无法工作

我希望有人能帮助我。我正在使用一个名为Machform的表单脚本。我遇到的问题是,当我的表单位于页面的一半时,用户提交表单时,他们会自动发送到页面的顶部,因此必须向下滚动到表单,查看是否有任何错误,或者是否显示成功消息,以验证表单已成功发送

表单本身被包装在一个带有ID(#mf#u占位符)的div中。我一直在寻找一种方法,在单击submit按钮时让页面滚动到此ID,但我对jquery或javascript一无所知。我遇到了一些听起来很有希望的事情,例如(由于我缺乏关于如何实现代码的知识而无法工作)以及尝试替换:

onload="javascript:parent.scrollTo(0,0);"  
与:

onload="javascript:this.scrollIntoView();"  
在js文件中

如果我“删除上面的第一行代码,然后单击submit(提交)按钮,则当我单击submit(提交)按钮时,窗口将保持在原来的位置,导致必须向上滚动一点才能看到成功或错误消息

如果我用上面的第二行代码“替换上面的第一行代码,那么它会给出所需的结果,但是它不会工作,因为当您访问页面时,它会自动向下滚动到表单

调查结果如下:

jQuery(document).ready(function($){
var mf_iframe_height;
var mf_iframe_padding_bottom = 0;

if($("#mf_placeholder").data("formheight") !== undefined){
  __machform_height = $("#mf_placeholder").data("formheight");
}

if($("#mf_placeholder").data("formurl") !== undefined){
  __machform_url = $("#mf_placeholder").data("formurl");
}

if($("#mf_placeholder").data("paddingbottom") !== undefined){
  var mf_iframe_padding_bottom = $("#mf_placeholder").data("paddingbottom");
}

var mf_iframe = $('<iframe id="mf_iframe" onload="javascript:parent.scrollTo(0,0);" height="' + __machform_height + '" allowTransparency="true" frameborder="0" scrolling="no" style="width:100%;border:none" src="'+ __machform_url +'"><a href="'+ __machform_url +'">View Form</a></iframe>');
$("#mf_placeholder").after(mf_iframe);
$("#mf_placeholder").remove();

$.receiveMessage(function(e){      
  if(e.data.indexOf('run_safari_cookie_fix') != -1){
    //execute safari cookie fix
    var mf_folder = __machform_url.substring(0,__machform_url.lastIndexOf('/'));

    window.location.href = mf_folder + '/safari_init.php?ref=' + window.btoa(window.location.href);
    return;
  }else{
    //adjust the height of the iframe     
    var new_height = Number( e.data.replace( /.*mf_iframe_height=(\d+)(?:&|$)/, '$1' ) );
    if (!isNaN(new_height) && new_height > 0 && new_height !== mf_iframe_height) {
      new_height += mf_iframe_padding_bottom; //add padding bottom

      //height has changed, update the iframe
      mf_iframe.height(mf_iframe_height = new_height);

      //just to make sure the height is being applied 
      document.getElementById("mf_iframe").setAttribute('style','width:100%;border:none;height:' + new_height + 'px !important');
    }
  }

});
jQuery(文档).ready(函数($){
变量mf_iframe_高度;
var mf_iframe_padding_bottom=0;
if($(“#mf_占位符”).data(“formheight”)!==未定义){
__马赫高度=$(“#mf#U占位符”)。数据(“表格高度”);
}
if($(“#mf_占位符”).data(“formurl”)!==未定义){
__machform_url=$(“#mf_占位符”)。数据(“formurl”);
}
if($(“#mf_占位符”).data(“paddingbottom”)!==未定义){
var mf_iframe_padding_bottom=$(“#mf_占位符”).data(“paddingbottom”);
}
var mf_iframe=$('');
$(“#mf_占位符”)。在(mf#iframe)之后;
$(“#mf_占位符”).remove();
$.receiveMessage(函数(e){
如果(例如data.indexOf('run\u safari\u cookie\u fix')!=-1){
//执行SafariCookie修复程序
var mf_folder=uu machform_url.substring(0,u machform_url.lastIndexOf('/');
window.location.href=mf_folder+'/safari_init.php?ref='+window.btoa(window.location.href);
返回;
}否则{
//调整iframe的高度
var new_height=编号(如data.replace(/.*mf_iframe_height=(\d+)(:&$)/,“$1”);
如果(!isNaN(新高度)和新高度>0和新高度!==mf\U iframe\U高度){
new_height+=mf_iframe_padding_bottom;//添加padding bottom
//高度已更改,请更新iframe
mf_iframe.高度(mf_iframe_高度=新高度);
//只是为了确保应用了高度
document.getElementById(“mf_iframe”).setAttribute('style','width:100%;border:none;height:'+new_height+'px!important');
}
}
});
}))

(我不知道为什么最后一次});不会显示在代码框中)

要嵌入我正在使用的表单,请使用以下代码:

<div id="mf_placeholder" data-formurl="xxx/forms/embed.php?id=10118" data-formheight="705" data-paddingbottom="10">

上面的代码在div标记的末尾还包含一些脚本标记,以包含上面的js文件,还有一些由于某种原因而不会显示在这里的其他代码

有人知道我怎样才能让它工作吗?理想情况下,我真的希望有动画“滚动到”的效果,如果可能的话,因为它是真的光滑。请记住,不幸的是,我对javascript一无所知,所以我非常感谢您能给我的任何帮助


谢谢大家!

url中的简单锚?简单锚的意思是:将“#youridname”添加到您提交的url中(对,@zipzit?)。我无法添加锚标记。这是一个带有管理后端的表单脚本,允许非常轻松地创建表单加载。每个表单都有一个内置的成功消息,当表单提交时,该消息将自动取代页面上的表单。您还可以创建多页表单,其中“提交”按钮变为“继续”按钮,因此我认为这不像添加锚一样简单。我熟悉html和css。Javascript对我来说完全是个希腊语。哇,对于那些家伙的收费,这个系统应该比这个好得多。我想你想使用锚定标记
#mf_占位符
,我不敢相信他们会列出它,而不打算使用它。我会说,提出这个问题的最佳地点不是stackoverflow,而是注意:你可以将页面位置信息粘贴到cookies中,但这是一个很大的痛苦。锚应该容易得多。或者,您可以使用更传统的webform提交和验证系统。更便宜,更容易使用。差不多