自己实在想不出实现的方法,特发到这里,还请高手指点一二。谢了!问题是这样的,偶想在页面上面实现双语言的切换,但是从英文修改为中文之后按钮的值也跟着变成了中文。这时候如果提交这个form则会提交中文的值,那么我在后台的程序里面就无法识别了。那么有什么办法,在按钮上面显示的是中文,但是form提交的时候提交的值确是英文的?如,下面的一个简单的html代码:<title>T&W Wireless Router</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="javascript" >
// <!--
function initLanguage()
{
document.getElementById( "lang_Apply" ).value = "启用/保存";
document.getElementById( "lang_Cancel" ).value = "重置";
}
//-->
</script>
</head><body onLoad="initLanguage();">
<form method="post" action="ssid.asp">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="150"></td>
<td> </td>
<td>
<input id="lang_Apply" type="submit" name="action" value="Apply">
<input id="lang_Cancel" type="reset" name="action" value="Cancel">
</td>
</tr>
</table>
</form>
</body>
</html>
进入该页面之后两个按钮就显示中文了,但是如果点击‘Apply’按钮,那么其提交的form里面,这个action的值就是中文了,我再后台就无法识别了。请高手帮忙呀,回帖的兄弟均有分呀。 谢谢!
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="javascript" >
// <!--
function initLanguage()
{
document.getElementById( "lang_Apply" ).value = "启用/保存";
document.getElementById( "lang_Cancel" ).value = "重置";
}
//-->
</script>
</head><body onLoad="initLanguage();">
<form method="post" action="ssid.asp">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="150"></td>
<td> </td>
<td>
<input id="lang_Apply" type="submit" name="action" value="Apply">
<input id="lang_Cancel" type="reset" name="action" value="Cancel">
</td>
</tr>
</table>
</form>
</body>
</html>
进入该页面之后两个按钮就显示中文了,但是如果点击‘Apply’按钮,那么其提交的form里面,这个action的值就是中文了,我再后台就无法识别了。请高手帮忙呀,回帖的兄弟均有分呀。 谢谢!
document.getElementById( "lang_Apply" ).value = "Apply";
document.getElementById( "lang_Cancel" ).value = "Cancel";
return true;}
<input id="lang_Apply" type="submit" name="action" onclick="formSubmit()" value="Apply">
<script type="text/javascript">
function formSubmit(){
document.getElementById( "lang_Apply" ).value = "Apply";
document.getElementById( "lang_Cancel" ).value = "Cancel";return true;}
</script>
<input type="hidden" name="Lang" value=""/>js更改按钮显示语言时,同时更改Lang的值.提交到后台后,后台根据Lang的值来处理不同的语言
我先也是想到了这个办法,但是我的有些页面有多个按钮,点击提交时会有一小段时间按钮上面显示的字由中文变为英文,这个改变估计客户那边不太会接受。我问了测试那边,他们说他们也不能接受,所以我只有放弃。回#3楼:
取他们值判断不同的应用呀,软件构架就是这样的。如果我要修改成别的形式,那么可能要修改到httpd进程了,那改动就大了,时间精力都不够的。回#4楼:
这也要添加比较多的代码,并且整个系统还要重新验证和测试。工作量太大了。谢谢三位的回复。不知还有没有别的什么方法?
action的值是中文的?action的哪个值,是按钮的吗?
按钮的value可以提交?
在页面中额外放两个hidden元素(hidden的name属性都必须为"action"),页面加载时,将hidden的value分别设为“提交按钮”和"重置按钮"的value,表单提交时,因为服务器是认页面的name属性的,所以我们就将已经更改为中文的按钮的name换掉(但是页面中有我们的hidden,它们代替了原来的“提交”和“重置”)
代码:<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
<title>T&W Wireless Router</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="javascript">
//
function initLanguage() {
document.getElementById("lang_ApplyHidden").value = document
.getElementById("lang_Apply").value;
document.getElementById("lang_CancelHidden").value = document
.getElementById("lang_Cancel").value;
document.getElementById("lang_Apply").value = "启用/保存";
document.getElementById("lang_Cancel").value = "重置";
}
function changName() {
document.getElementById("lang_Apply").name = "dfdfdfdfdfdf";
document.getElementById("lang_Cancel").name = "dfdfdfdfdfdf";
return true;
}
//
</script>
</head> <body onLoad="initLanguage();">
<form method="post" action="ssid.asp">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="150"></td>
<td>
</td>
<td>
<input id="lang_Apply" type="submit" name="action" value="Apply"
onclick="return changName()">
<input id="lang_Cancel" type="reset" name="action" value="Cancel">
<input id="lang_ApplyHidden" type="hidden" name="action">
<input id="lang_CancelHidden" type="hidden" name="action">
</td>
</tr>
</table>
</form>
</body>
</html>
后台是怎么以做的呢?如果要根据value来判断的话,至少会有类似于
if (value == "Apply")
之类的东西吧,为什么不多加个条件呢
if (value == "Apply" || value == "启用/保存")当然这样在添加新语言的时候会有很大负担,不过谁叫他们一开始没考虑多语言的问题呢,避免不了了
英文操作系统一般情况下为submit和reset
中文操作系统一般情况下为提交和重置
<input id="lang_Apply" type="submit" name="action" value="Apply">
<input id="lang_Cancel" type="reset" name="action" value="Cancel">换成:
<input type="hidden" id="hidSubmit" name="action"/>
<input id="lang_Apply" type="button" name="action"
submitVal="Apply" value="Apply"
onclick="document.getElementsById('hidSubmit').value=this.submitVal;this.form.submit();">
<input id="lang_Cancel" type="reset" name="action" value="Cancel">
<input id="lang_Apply" type="submit" name="action_active" value="Apply">
但如果在这个form中还包括下面这些按钮呢<button type="hidden" name="action" value="Select"></button>
<button id="lang_select" type="submit" name="action_select" value="Select">Select</button><input id="lang_submit_new" type="submit" name="action" value="New">
<input id="lang_submit_delete" type="submit" name="action" value="Delete">
我试了,如果按照上面的方面加一个隐藏按钮的话,原版按钮的功能就全失效了,都是提交Apply了。
看来还是不行呀。在此说明一下一些朋友的疑问,这些web页面是用在mini型的嵌入式系统里面的,flash和ram分别只有2M和8M,软件中还包括了linux内核,应用程序和这些配置页面,所以增加后台的语言识别或者其他复杂的方法都是不行的。
document.form("name").submit();}
<form method="post" action="ssid.asp">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="150"></td>
<td><input type="text"></td>
<td> <input id="lang_Apply1" type="submit" name="action" value="启用/保存" onclick="javascript:document.getElementById('s').onclick();">
<input id="lang_Cancel1" type="reset" name="action" value="重置"><div style="display:none;">
<input id="lang_Apply" type="submit" name="action" value="Apply">
<input id="lang_Cancel" type="reset" name="action" value="Cancel">
</div>
</td>
</tr>
</table>
</form>把要判断的都放到隐藏的DIV中
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="js/jquery-1.3.2.min.js"></script>
<title>无标题文档</title>
</head>
<body>
<form action="http://www.baidu.com" method="post" id="myForm">
<input type="submit" value="提交1" id="sub" />
<button type="submit" id="sub2">提交2 </button>
</form>
</body>
<script language="javascript">
$(function()
{
$("[type=submit]").bind("click",s);
});
function s()
{
alert(this.id);
}
</script>
</html>这样可以判断是哪个按钮,你自己再操作吧。
18楼的操作试试,我看行。
改ACTION应该可以满足你的要求<head>
<title>T&W Wireless Router</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="javascript" >
// <!--
function initLanguage()
{
document.getElementById( "lang_Apply" ).value = "启用/保存";
document.getElementById( "lang_Cancel" ).value = "重置";
}
function mypost(v)
{
document.form1.action="ssid.asp?action="+v;
form1.submit();
}
//-->
</script>
</head><body onLoad="initLanguage();">
<form id="form1" name="form1" method="post" action="">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="150"></td>
<td> </td>
<td>
<input id="lang_Apply" type="button" value="Apply" onclick="mypost(this.value)">
<input id="lang_Cancel" type="reset" value="Cancel">
</td>
</tr>
</table>
</form>
</body>
</html>