【发布时间】:2016-06-30 18:01:41
【问题描述】:
我正在尝试通过 JavaScript 更改隐藏字段的值。在我的页面中有两个按钮,一个用于返回主页(index.php),另一个用于返回第一页进行数据输入(addData.php)。我正在尝试使用 ID 为 "goHome" 的隐藏字段来控制路由。我的代码是这样的:
HTML(仅限表单)
<form name = "addDataReal" id = "addDataReal" method = "POST" action = "addDataProc.php" onsubmit="return checkNSub()">
<!-- Other items -->
<input type = "submit" name = "submitBtnF" id = "submitBtnF" class="shortText" style = "width: 120px;" value = "Submit + Home" onclick = "return getGoValue(true)"/>
<input type = "submit" name = "submitBtnR" id = "submitBtnT" class="shortText" style = "width: 120px;" value = "Submit + Next" onclick = "return getGoValue(false)"/>
<input type = "hidden" name = "goHome" id = "goHome" value = "" />
</div>
</form>
Javascript
function checkNSub() {
//form validation functions
//OK then return true
//Not then return false
}
function getGoValue(goHome) {
if (goHome) {
document.getElementById("goHome").value = "true";
} else {
document.getElementById("goHome").value = "false";
}
return true;
}
在此之前我已经尝试了很多其他版本,我参考了这几个问题:
Set form hidden value on submit
Setting a form variable value before submitting
How to change the value of hidden input field before submitting
但没有一种方法对我有用。
出于实际目的,有一个解决方法,但我想知道我是否想保留这两个按钮,应该如何修改我的代码,以便可以在提交表单之前更改 "goHome" 的值?经过多次尝试,我仍然收到$_POST["goHome"] = ""。
还有,为什么之前提交的表单是之前的代码,实际改变了之前的值?
谢谢!
【问题讨论】:
-
由于您正在提交表单,服务器可以通过尝试获取参数
submitBtnF来判断使用了两个按钮中的哪一个,如果没有则尝试获取submitBtnR的值。现在服务器可以处理/保存表单数据,然后如果使用submitBtnF提交表单,则redirect 到主页,如果使用submitBtnR,则再次添加Data.php。
标签: javascript html forms hidden