Я делаю страницу, содержащую форму, и я пытаюсь ее прокрутить назад, все, что я пытаюсь обновить. Любая идея избежать этого?
Здесь код скрипта:
function vizsgalja_h_ki_van_toltve()
{
var csaladnev=document.getElementById("csaladnev").value;
var keresztnev=document.getElementById("keresztnev").value;
var CNP=document.getElementById("CNP").value;
var magyar;
for(var i=0; i<document.getElementsByName("magyar").length; ++i)
if(document.getElementsByName("magyar")[i].checked)
magyar=document.getElementsByName("magyar")[i].value;
var roman;
for(var i=0; i<document.getElementsByName("roman").length; ++i)
if(document.getElementsByName("roman")[i].checked)
roman=document.getElementsByName("roman")[i].value;
var angol;
for(var i=0; i<document.getElementsByName("angol").length; ++i)
if(document.getElementsByName("angol")[i].checked)
angol=document.getElementsByName("angol")[i].value;
var tortenelem;
for(var i=0; i<document.getElementsByName("tortenelem").length; ++i)
if(document.getElementsByName("tortenelem")[i].checked)
tortenelem=document.getElementsByName("tortenelem")[i].value;
var irasbeli="";
for(var i=0; i<document.getElementsByName("irasbeli").length; ++i)
if(document.getElementsByName("irasbeli")[i].checked)
irasbeli=irasbeli+document.getElementsByName("irasbeli")[i].value+"<br>";
for(var i=0; i<document.getElementsByName("irasbeli2").length; ++i)
if(document.getElementsByName("irasbeli2")[i].checked)
irasbeli=irasbeli+document.getElementsByName("irasbeli2")[i].value+"<br>";
if(!csaladnev || !keresztnev || !CNP)
{
document.body.scrollTop = document.documentElement.scrollTop = 0;
document.getElementById("msg").innerHTML="Nincs minden adat kitöltve. Kérelek add meg ezeket.";// I want to make the page scroll to the top when this message appears.
}
else
{
document.getElementById("msg").innerHTML="";
document.getElementById("form").innerHTML="<h3>A megadott adataid:</h3>Családnév: :"+csaladnev+"<br>Keresztnev: "+keresztnev+"<br>C.N.P: "+CNP+"<br><br><h3>Szóbelik:</h3>Magyar: "+magyar+"<br>Román: "+roman+"<br>Angol:"+angol+"<br>Történelem"+tortenelem+"<br><h3>Írásbelik:</h3>"+irasbeli;
}
}
Это единственная функция, которая загружается после нажатия кнопки на странице. Я хочу, чтобы страница попала в верхнюю часть, если появится это сообщение (я добавил комментарий в код).
Редактировать: Может быть, если я сделаю якорь сверху, но как мне туда попасть из сценария?
Добавьте к этой head
вашего кода:
<div id="top" style="display:none;"></div>
И используйте это в своем javascript:
window.location = "#top";
Он должен работать, если нет ошибки.
Вы должны увидеть эффект с помощью этого фрагмента:
<div id="top"></div><div style="display:block;height:100%;width:100%;background-color:#000000;"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></div><a href="#" onclick='window.location="#top";'>top</a>
div
а не якорь? <a id="top"></a>
Они должны использоваться в следующих случаях: w3.org/TR/html401/struct/links.html#h-12.2.3
Попробуйте это, возможно, это помогает
window.onload = function() { setTimeout (function () { scrollTo(0,0); }, 0);}
if(document.getElementById("msg")) { window.scrollTo(0,0); }