2013-06-21 72 views
0

我有一个选择半径的搜索表单,我使用在线api在邮政编码上进行搜索。 api自动提交输入,如果输入,但提交后,我改变了半径,我不得不再次输入邮政编码,否则不会发送新的数据。是否有可能刷新选择框的变化的html输入?

我想知道是否可以刷新选定半径的邮政编码onchange的输入。

我searchform:

<form name="input" method="post" action="searchresults" class="pro6pp_range"> 
<input type="search" onchange="validate()" placeholder="Zoeken..." name="search" size="85"> 
<input type="search" name="searchpc" required="required" class="postcode" value='<?= $postcode ?>' placeholder="Postcode (1234)" maxlength="4"> 
    <select id="selection" class="range" onchange="updateInput(this.value)"> 
     <option value="5">5 km</option> 
     <option value="10">10 km</option> 
     <option value="15">15 km</option> 
     <option value="20">20 km</option> 
     <option value="50">50 km</option> 
     </select> 
    <input type="submit" value="Zoeken"> 
    <br/> 
    <span class="message"></span>  

    <span class="output"></span> 
    <br/> 
</form> 

我想这一点,但没有奏效:

function updateInput(searchpc){ 
     document.getElementByName("searchpc").value = <?php echo $postcode ?>; 
    } 

还应注意选择框我的的onChange功能。

+0

你可以显示使用API​​的代码吗?该API是否使用JavaScript来提交表单?页面是否刷新? – jcubic

+0

我认为它应该是document.getElementsByName,你不觉得它应该有索引? – Markipe

回答

0

据我所知getElementsByName将返回一个array

所以尽量在适当位置使用idname

<input type="search" name="searchpc" id="searchpc" .... /> 

而你的函数将像,

function updateInput(searchpc){ 
    document.getElementById("searchpc").value = searchpc; 
    // I think it should be selected value from select box notphp value 
} 
+0

好吧,它是令人耳目一新的,但我现在从输入的半径中获得值。所以当我选择10公里时,输入更新为10. –

+0

和你现在想要什么? –

+0

我在输入中输入'9101'。当我选择例如10km的值更改为10,但我只是想刷新输入的值,所以'9101' –

1

可能会工作

function updateInput(searchpc){ 
    document.getElementByName("searchpc").value = searchpc; 
} 

searchpc是你的“ this.value“选择标签。

请让我知道它是否工作。

UPDATE

你输入9101,然后如果你选择10公里那么你可以张贴的形式类似

function updateInput(searchpc) 
{ 
    document.input.submit(); 
} 

因此我们将同时获得9101和10公里的SearchResult所页面。

新的更新

我觉得你的小盒子输入表单应该像以下。

<form name="small_input" action="searchresults" method="post"> 
<input type="text" placeholder="Postcode" size="25" name="postcode"/> 
<select name="radius" class="range" onchange="updateInput(this.value)"> 
    <option selected="" disabled="">Afstand</option> 
    <option value="5">5</option> 
    <option value="10">10</option> 
    <option value="15">15</option> 
    <option value="20">20</option> 
    <option value="25">25</option> 
</select> 
<br><br> 
<hr> 
<br> 
    <p style="float: right"><input type="submit" value="Opslaan"></p> 
    <input type="hidden" value="true" name="submitted"> 
    <input type="hidden" value="true" name="afstand"> 
</form> 

请让我知道是什么状态。

+0

我认为你应该使用'document.getElementsByName(“searchpc”)[0] .value = searchpc;'。因为'getElementsByName'将返回一个'数组'。 –

+0

对不起,我想做document.getElementById(“searchpc”)。value = searchpc;抱歉,是我的错... – ABorty

+0

你能帮我用我从Rohan的答案中使用的代码吗?他不活跃。 –

相关问题