需要改进导航列表

时间:2013-04-22 16:50:22

标签: javascript html5

我制作了一个简单的html导航列表+一些javascript。问题是当我选择一个选项并单击提交时我想要返回一个值,但是这个值在1秒内就消失了,这里是代码:

<!doctype html>

<html>
<head>
<title>lol</title>
<meta charset="utf-8">
</head>
<body>
    <form action="" name="form">
       <input type="text" id="hp">

       <select name="" id="lol">
            <option value="neki1">neki1</option>
            <option value="neki2">neki2</option>
            <option value="neki3">neki3</option>
       </select>

       <input type="submit" onmousedown="radi()">   
       </form>
       <script type="text/javascript">
         function radi () {
            var x = document.getElementById('lol').selectedIndex,
            y = document.getElementById('lol').options,
            z = Number(document.form.hp.value),
            zSum = 0;

            if(y[x].text === "neki1"){
            zSum = z + 20;
            }

            else if(y[x].text === "neki2" ){
            zSum = z + 35;
            }

            else if(y[x].text === "neki3" ){
            zSum = z + 55;
            }

            document.form.hp.value = zSum;
        }
</script>
</body>
</html>

编辑:我还希望减去旧值,如果我更改选项:)),是的,第一个问题已被回答。

2 个答案:

答案 0 :(得分:0)

那是因为您没有停止提交表单并且页面正在重新加载。将按钮代码更改为:

<input type="submit" onclick="return radi()">

并在功能结束时添加

return false;

<强> jsFiddle example

答案 1 :(得分:0)

第二个问题

用户parseInt() javascript方法将值从文本框转换回整数。 如果值为非0,则根据需要进行减法。

parseInt(document.form.hp.value)