Javascript HREF更新

时间:2011-04-30 16:20:44

标签: javascript href

我偶尔会访问一些在HREF中显示页码的网址。这些变化,我需要跟踪最后一次访问。我一直在通过剪切粘贴到文本文件中来做这件事,但是想用一个我可以用javascript更新的本地HTML页面来替换它。这是我创建的一个例子:

<script type="application/javascript">
      function update(n,newvalue) {
           var link = document.getElementById('l' + n);
           var href = link.getAttribute('href', 2);
           var textfield = document.getElementById('p' + n);
           var parts = new Array();
           parts = href.split('-');
           parts[1] = 'p' + newvalue;
           textfield.setAttribute('value', newvalue);
           var newhref = parts.join('-');
           link.setAttribute('href',newhref);
       }
</script>
<form>
     <dl>
         <dt><a target="_blank" id="l1" href="http://foobar.org/t5-p8-data.html">Task 5 Data<a></dt>
         <dd>Page: <input type="text" id="p1" value="8" onChange="update(1,this.value)" /> </dd>
     </dl>
</form>
    </html>

当我在文本字段中输入一个新值并使用Firebug跟踪它时,它似乎工作正常,即链接href值和文本字段值在DOM中更改,但当函数退出时它们返回到页面中的原始值。我做错了什么?

1 个答案:

答案 0 :(得分:0)

主要编辑:

问题是在表单标签内点击输入单<input>会提交表单,所以会发生什么,输入输入,点击回车,这会导致blor,所以{{ 1}}事件触发,调试器中显示的一切都很好。完成后,页面重新加载(因为默认格式onchange是GET当前页面)没有闪烁,重置输入值。

解决方案1:删除action标记。表单元素在此代码段中没有做任何有用的事情。

解决方案2:向<form>添加onsubmit=return(false)属性。

解决方案3:向表单添加另一个非隐藏输入。