如何根据会话变量编程改变形式的行动? [英] How to change the form action programatically according to session variable?
问题描述
如果我有一个格式
其中动作
应根据一些会话变量不同。我怎样才能改变形式的行动动态,以便对特定链接按钮的客户端点击我可以与所需的行动提交表单。
<表ID =MyForm的行动=我想,以动态地改变它的方法=后>
<%-------------%GT;
< /表及GT;
<脚本类型=文/ JavaScript的>
功能submitform()
{
document.myform.submit();
}< / SCRIPT>
例如:
如果会话[EMP] = 1,则动作/A.aspx如果会话[EMP] = 2那么动作/B.aspx
选项1
我通常放在隐藏域服务器值加载窗体时,这样我可以与他们在JavaScript中进行交互:
函数submitform()
{
//获取通过设置服务器端表单提交网址
变种myHiddenObj =的document.getElementById(&下;%= hdnServerValue.ClientID%gt;中); //获取表单对象
变种myFormObj =的document.getElementById(MyForm的); //改变形式的行动和放大器;提交
myFormObj.action = myHiddenObj.value;
myHiddenObj.submit();
}
选项2
如果您只是想表单行动,改变,不需要任何其他的客户端处理,只需更改服务器上的表单操作(你需要添加 =服务器
到您的窗体标签):
标记:
<表ID =MyForm的=服务器行动=方法=后>
<%-------------%GT;
< /表及GT;
C#(或您的preferred服务器端语言)
如果(会话[EMP]。的ToString()==1)
myform.Action =A.aspx;
否则如果(会话[EMP]。的ToString()==2)
myform.Action =B.aspx;
其他
//处理既不1或2的
If i have a form
which action
should differ according to some session variable . How can i change the action of the form dynamically so that on client click of specific link button i could submit the form with the required action.
<form id="myform" action="I wanna to change it dynamically" method="post" >
<%-------------%>
</form>
<script type="text/javascript">
function submitform()
{
document.myform.submit();
}
</script>
For example :
If session["emp"] = 1 then the action is /A.aspx
If session["emp"] = 2 then the action is /B.aspx
Option 1
I typically place server values in hidden fields when the form loads so that I can interact with them in JavaScript:
function submitform()
{
// Get URL that was set server-side for form submission
var myHiddenObj = document.getElementById("<%= hdnServerValue.ClientID %>");
// Get form object
var myFormObj = document.getElementById("myform");
// Change form action & submit
myFormObj.action = myHiddenObj.value;
myHiddenObj.submit();
}
Option 2
If you simply want the form action to change and require no other client-side processing, simply change the form action on the server (you'll need to add runat="server"
to your form tag):
Markup:
<form id="myform" runat="server" action="" method="post" >
<%-------------%>
</form>
C# (or your preferred server side language)
if(Session["emp"].ToString() == "1")
myform.Action = "A.aspx";
else if (Session["emp"].ToString() == "2")
myform.Action = "B.aspx";
else
// Handle neither 1 or 2
这篇关于如何根据会话变量编程改变形式的行动?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!