表单中元素的更改值为't已发布

Changed value of element in form isn't posted

本文关键字:元素 表单      更新时间:2023-09-26

我有一个带有一个输入元素的表单,它通过post从最后一页获取值,像这样:

<form action="http://localhost/maps_en2/next-page" method="POST">
    <input name="srchZoom" type="hidden" value="<?php if( isset($_POST['srchZoom']) ) echo $_POST['srchZoom']; ?>">
    <input type="submit" class="buttonForLink" value="next page"/> | 
</form>

此表单被设计为链接。

我需要能够在mapIdle事件之后更改元素的值,然后当链接被点击时,将新值发布到下一页。

所以我这样做:

function mapIdle(){
    document.getElementsByName("srchZoom").innerHTML = map.getZoom();
}

我进行了检查,事实上在mapIdle事件之后,元素的值发生了更改
我通过点击一个触发这个的按钮来检查它:

alert(document.getElementsByName("srchZoom").innerHTML);

问题是,当点击链接时,表单会发布元素的原始值,而不是函数mapIdle()设置的值。

我认为应该使用"value"而不是"innerHTML":

function mapIdle(){
    document.getElementsByName("srchZoom").value = map.getZoom();
}
 document.getElementsByName("srchZoom")

返回数组(getElements-复数)。因此,使用document.getElementsByName("srchZoom").innerHTML,您将属性innerHTML添加到该数组中。你应该把它改成

document.getElementsByName("srchZoom")[0].value = map.getZoom();

更改名为srchZoom的第一个元素的值。