0

我做了一个简单的 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>

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

4

2 回答 2

0

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

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

并在你的函数结束时添加

return false;

jsFiddle 示例

于 2013-04-22T16:57:38.400 回答
0

对于第二个问题

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

parseInt(document.form.hp.value)
于 2013-04-22T17:16:18.480 回答