我有这段代码,我正在尝试将值设置为变量days
(如果选中复选框的组合之一为真),并通过提交发送给另一个asp。
问题是变量不带任何值。这是代码:
<html>
<head>
<script type="text/javascript">
function validatedays(days) {
var dias=3
if(document.getElementById("chkmonday").checked && document.getElementById("chktuesday").checked)
{ var days=1;}
if(document.getElementById("chkwednesday").checked && document.getElementById("chkthursday").checked)
{ var days=2;}
if(document.getElementById("chkfriday").checked) {
var days=3 }
datos.submit()
}
</script>
</head>
<body>
<form method="post" id="data" name="data" action="blabla.asp">
<input type="text" name="txtsurname" id="txtsurname" size="20" /><br />
<input type="text" name="txtcuota" id="txtcuota" size="20" /><br />
<br />
<input type="checkbox" value="chklunes" name="chkmonday" /><br/>
<input type="checkbox" value="chkmartes" name="chktuesday" /><br/>
<input type="checkbox" value="chkmiercoles" name="chkwednesday" /><br/>
<input type="checkbox" value="chkjueves" name="chkthursday" /><br/>
<input type="checkbox" value="chkviernes" name="chkfriday" /><br/>
<br/>
<input type="submit" value="Calcular" onclick="javascript:validatedays(days)" />
<input type="reset" value="Clean" />
</form>
</body>
</html>
答案 0 :(得分:0)
var
关键字声明当前范围内的变量。您需要在整个函数的范围内声明天数。然后你需要一种方法来传递你在表单中的值:这通常使用输入类型=“隐藏”来完成。
function validatedays() {
var days;
if(document.getElementById("chkmonday").checked && document.getElementById("chktuesday").checked) {
days=1;
} else if(document.getElementById("chkwednesday").checked && document.getElementById("chkthursday").checked) {
days=2;
} else if(document.getElementById("chkfriday").checked) {
days=3;
}
// Assign days to the value of a (hidden) input in the form
document.getElementById('data').submit();
}
您的按钮是一个类型=“提交”,我认为您不需要最后一行(除非您取消该活动)。
答案 1 :(得分:0)
问题在于,当您执行var <name of the variable>
时,您将在不必要时重新声明它。因此,请删除var
关键字。
另外,你错过了一些;
,最重要的是,你没有定义datos
(我猜应该是这个形式)。
var datos = document.getElementById('data');
function validatedays(days) {
if (document.getElementById('chkmonday').checked
&& document.getElementById('chktuesday').checked) {
days = 1;
}
if (document.getElementById("chkwednesday").checked
&& document.getElementById("chkthursday").checked) {
days = 2;
}
if (document.getElementById("chkfriday").checked) {
days = 3;
}
datos.submit();
}