Javascript 基于隐藏字段值更改表单动作值

Javascript 基于隐藏字段值更改表单动作值,javascript,forms,Javascript,Forms,当用户选择2个或3个复选框并提交表单时,我试图根据2个或3个隐藏字段的值更改表单操作属性的值。 选中复选框时,默认值为0的隐藏字段的值为1。 然而,它不起作用,我不确定从这里去哪里 我的表格: <form id="f" name="f" method="post" onsubmit="return checkform()" action="scripts/false.php"> RSA:<input type="hidden" id="RSAsel" name="RSAsel"

当用户选择2个或3个复选框并提交表单时,我试图根据2个或3个隐藏字段的值更改表单操作属性的值。 选中复选框时,默认值为0的隐藏字段的值为1。
然而,它不起作用,我不确定从这里去哪里

我的表格:

<form id="f" name="f" method="post" onsubmit="return checkform()" action="scripts/false.php">
RSA:<input type="hidden" id="RSAsel" name="RSAsel" value="0" /> 
RSG:<input type="hidden" id="RSGsel" name="RSGsel" value="0" /> 
RSF:<input type="hidden" id="RSFsel" name="RSFsel" value="0" />
<input name="submit" type="button" class="bodytxt" id="button" onclick="javascript:doSubmit();" value="Enrol in these courses">
</form>

<script>
function doSubmit() {

var RSAsel = parseInt(document.getElementById("RSAsel").value);
var RSGsel = parseInt(document.getElementById("RSGsel").value);
var RSFsel = parseInt(document.getElementById("RSFsel").value);  

var target1 = 'scripts/process-combined-3.php';
var target2 = 'scripts/process-combined-rsa-rsg.php';
var target3 = 'scripts/process-combined-rsa-rsf.php';
var target4 = 'scripts/process-combined-rsg-rsf.php';

var theForm=document.getElementById('f');

if (RSAsel === 1 && RSGsel === 1 && RSFsel === 1) {
theForm.action = target1;
theForm.submit();
return true;
}
else if (RSAsel === 1 && RSGsel === 1) {
theForm.action = target2;
theForm.submit();
return true;
}
else if (RSAsel === 1 && RSFsel === 1) {
theForm.action = target3;
theForm.submit();
return true;
}
else if (RSGsel === 1 && RSFsel === 1) {
theForm.action = target4;
theForm.submit();
return true;
}

}
</script>

RSA:
RSG:
无国界医生:
函数doSubmit(){
var RSAsel=parseInt(document.getElementById(“RSAsel”).value);
var RSGsel=parseInt(document.getElementById(“RSGsel”).value);
var RSFsel=parseInt(document.getElementById(“RSFsel”).value);
var target1='scripts/process-combined-3.php';
var target2='scripts/process组合rsa rsg.php';
var target3='scripts/process组合rsa rsf.php';
var target4='scripts/process组合rsg rsf.php';
var theForm=document.getElementById('f');
如果(RSAsel==1&&RSGsel==1&&RSFsel==1){
form.action=target1;
submit()格式;
返回true;
}
else if(RSAsel==1&&RSGsel==1){
form.action=target2;
submit()格式;
返回true;
}
else if(RSAsel==1&&RSFsel==1){
form.action=target3;
submit()格式;
返回true;
}
else if(RSGsel==1&&RSFsel==1){
form.action=target4;
submit()格式;
返回true;
}
}

在尝试使用隐藏字段之前,您需要获取该字段的值,如:

function doSubmit() {

    var RSAsel = document.getElementById("RSAsel").value;
    var RSGsel = document.getElementById("RSGsel").value;
    var RSFsel = document.getElementById("RSFsel").value;
    //rest of your code
}

并且没有
标题(“Location:$errorurl”)
在javascript中,您将其与PHP混淆

实际上它应该是
var RSAsel=parseInt(document.getElementById(“RSAsel”).value);var RSGsel=parseInt(document.getElementById(“RSGsel”).value);var RSFsel=parseInt(document.getElementById(“RSFsel”).value)由于默认情况下值被提取为字符串,并且代码使用严格的comparisonHi-感谢您的帮助。我尝试了以上两种建议,但都没有成功。添加上述2种代码变体后,将生成一条PHP错误消息。如果没有它,它将处理动作默认值为的页面;(scripts/false.php)。