我制作了一个简单的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>
编辑:我还希望减去旧值,如果我更改选项:)),是的,第一个问题已被回答。
答案 0 :(得分:0)
那是因为您没有停止提交表单并且页面正在重新加载。将按钮代码更改为:
<input type="submit" onclick="return radi()">
并在功能结束时添加
return false;
<强> jsFiddle example 强>
答案 1 :(得分:0)
用户parseInt()
javascript方法将值从文本框转换回整数。
如果值为非0,则根据需要进行减法。
parseInt(document.form.hp.value)