我有:
<ul>
<form name="myform" action="Users" id="myform" method="post">
<li><a id="target" name="target" value='A' href="#">A</a></li>
<li><a id="target" name="target" value='B' href="#">B</a></li>
<li><a id="target" name="target" value='C' href="#">C</a></li>
</form>
</ul>
在我的控制器中,我想要检索像Request.Form["target"]
这样的值。
我如何通过<a>
发送包含<a>
值的表单?
非常感谢!
答案 0 :(得分:2)
只有表单元素(select,input,textarea)才会提交给服务器。并且值不是a
标记的有效属性。如果您唯一需要的是获得点击链接的价值 - 您可以使用href:
<li><a id="target" name="target" href="?target=A">A</a></li>
<li><a id="target" name="target" href="?target=B">B</a></li>
<li><a id="target" name="target" href="?target=C">C</a></li>
而不是在服务器上:
Request["target"]
否则 - 您需要为a
执行onclick处理程序,并且点击a
的值,将其放入某个隐藏字段,然后调用document.myform.submit()
;
答案 1 :(得分:1)
首先,拥有多个具有相同ID的元素是无效的HTML - 不要这样做。拥有相同的name
是有效的,所以请保留它。
其次,您必须使用JavaScript填充隐藏的表单输入并自动提交表单。添加隐藏的输入:
<input type="hidden" name="target" />
然后有这样的代码:
window.onload = function() {
var anchors = document.getElementsByTagName("a");
var oForm = document.forms["myform"];
var oHiddenInput = oForm.elements["target"];
for (var i = 0; i < anchors.length; i++) {
if (anchors[i].name === "target") {
anchors[i].onclick = function() {
oHiddenInput.value = this.value;
oForm.submit();
return false;
};
}
}
};
答案 2 :(得分:0)
也试试这个:
<ul>
<form name="myform" id="myform" method="post">
<input type="hidden" name="target" id="target" value="">
<li><a class="target" id="t1" name="target" rel='A' href="#">A</a></li>
<li><a class="target" id="t2" name="target" rel='B' href="#">B</a></li>
<li><a class="target" id="t3" name="target" rel='C' href="#">C</a></li>
</form>
</ul>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="application/javascript">
$(document).ready(function(){
$('.target').click(function(){
$('#target').val($(this).attr('rel'));
$('#myform').submit();
});
});
</script>
答案 3 :(得分:0)
感谢所有人,
我从一些解决方案中做了一个混合:
<强> HTML 强>
<form name="myform" method="post">
<li><a href="#" onclick="submit('A');">A</a></li>
<li><a href="#" onclick="submit('B');">B</a></li>
<li><a href="#" onclick="submit('C');">C</a></li>
<input name="target" type="hidden" value=""/>
</form>
<强> JS 强>
<script type="text/javascript" language="javascript">
function submit(target) {
document.forms['myform'].elements['target'].value = target;
document.myform.submit();
}
</script>