简化 Javascript 表单提交
Simplifying a Javascript Form Submit
我喜欢使用javascript提交表单。我是javascript的新手,我不知道如何简化下一个代码:(这段代码可以工作,但我认为可以简化):
<html>
<body>
<?php
$actual_link = "$_SERVER[REQUEST_URI]";
?>
<form id="countryDE" method="post" action="geo-country.php">
<input type="hidden" name="gobackto" value="<?php echo htmlspecialchars($actual_link);?>">
<input type="hidden" name="countrycookie" value="DE">
</form>
<form id="countryIT" method="post" action="geo-country.php">
<input type="hidden" name="gobackto" value="<?php echo htmlspecialchars($actual_link);?>">
<input type="hidden" name="countrycookie" value="IT">
</form>
<form id="countryUS" method="post" action="geo-country.php">
<input type="hidden" name="gobackto" value="<?php echo htmlspecialchars($actual_link);?>">
<input type="hidden" name="countrycookie" value="US">
</form>
<form id="countryCA" method="post" action="geo-country.php">
<input type="hidden" name="gobackto" value="<?php echo htmlspecialchars($actual_link);?>">
<input type="hidden" name="countrycookie" value="CA">
</form>
<?php
echo $_COOKIE["cbccountry"];
?>
<ul>
<li><a href="#" title="Germany" onclick="submitformDE()">Germany</a></li>
<li><a href="#" title="Italy" onclick="submitformIT()">Italy</a></li>
<li><a href="#" title="United States" onclick="submitformUS()">United States</a></li>
<li><a href="#" title="Canada" onclick="submitformCA()">Canada</a></li>
</ul>
<script type="text/javascript">
function submitformDE()
{
document.forms["countryDE"].submit();
}
function submitformIT()
{
document.forms["countryIT"].submit();
}
function submitformUS()
{
document.forms["countryUS"].submit();
}
function submitformCA()
{
document.forms["countryCA"].submit();
}
</script>
</body>
</html>
谢谢你的帮助。
http://jsfiddle.net/tracker1/9pfxL4Lz/
仅使用样式化的提交按钮,其名称与要传递的键/值匹配。
<!DOCTYPE html>
<html>
<head>
<?php
$actual_link = "$_SERVER[REQUEST_URI]";
?>
<style type="text/css">
button.link {
display:inline-block;
position:relative;
background-color: transparent;
cursor: pointer;
border:0;
padding:0;
color:#00f;
text-decoration:underline;
}
</style>
</head>
<body>
<form method="post" action="geo-country.php">
<input type="hidden" name="gobackto" value="<?php echo htmlspecialchars($actual_link);?>">
<button class="link" type="submit" name="countrycookie" value="DE">Germany</button>
<button class="link" type="submit" name="countrycookie" value="IT">Italy</button>
<button class="link" type="submit" name="countrycookie" value="US">United States</button>
<button class="link" type="submit" name="countrycookie" value="CA">Canada</button>
</form>
</body>
</html>
//UPDATE
http://jsfiddle.net/v5dejopw/11/
function submitform()
{
var submit=document.forms["test"]["country"].value;
switch (submit)
{
case 'Germany':
submit = 'Germany';
break;
case 'Italy':
submit = 'Italy';
break;
case 'United States':
submit = 'United States';
break;
case 'Canada':
submit = 'Canada';
break;
}
}
<body>
<form name="test" id="test" method="post" onsubmit="return submitform();">
<input type="hidden" name="gobackto" value="<?php echo htmlspecialchars($actual_link);?>" onsubmit="return submitformDE();">
<input type="hidden" name="countrycookie" value="DE">
<input type="submit" name="country" value="Germany" class="submitInput">
<input type="hidden" name="gobackto" value="<?php echo htmlspecialchars($actual_link);?>">
<input type="hidden" name="countrycookie" value="IT">
<input type="submit" name="country" value="Italy" class="submitInput">
<input type="hidden" name="gobackto" value="<?php echo htmlspecialchars($actual_link);?>">
<input type="hidden" name="countrycookie" value="US">
<input type="submit" name="country"value="United States" class="submitInput">
<input type="hidden" name="gobackto" value="<?php echo htmlspecialchars($actual_link);?>">
<input type="hidden" name="countrycookie" value="CA">
<input type="submit" name="country" value="Canada" class="submitInput">
</form>
我建议考虑使用javascript向服务器发出post请求,而不是有那么多表单元素。我解决这个问题的方法是使用带有单选块的单个表单,并将单击事件绑定到将自动提交表单的单选元素。
相关文章:
- Javascript无法处理表单提交
- 将带有多维数组的表单从Javascript提交到PHP
- 使用javascript将表单提交到iframe目标中
- JavaScript表单提交帮助
- JavaScript表单提交没有't fire asp服务器端点击功能的提交按钮
- Javascript使用Confirm取消表单提交
- 如何在表单提交事件后运行JavaScript*
- 在从HTML表单提交时从javascript运行php
- 使用Javascript表单提交所需的HTML5
- 如何将javascript仅应用于1个表单中的2个表单提交按钮中的1个
- javascript登录表单提交
- 在 Ajax Rails 表单提交后,在表单下发布额外的 Javascript 代码 ( ..等)
- 阻止表单提交 javascript 为什么有一个明显的错误语句返回 true
- 表单提交 JavaScript 不起作用
- 空表单提交 Javascript
- 表单提交Javascript后,子级刷新自身而不是父级
- 防止表单提交(javascript)
- HTML表单提交- javascript不提交输入按钮
- 返回不停止表单提交(javascript)
- 表单提交javascript不起作用