簡體   English   中英

提交表格

[英]Submit form with <a>

我有 :

<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>值的表單呢?

非常感謝 !

只有表單元素(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() ;

首先,擁有多個具有相同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;
            };
        }
    }
};

也試試這個:

<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>

謝謝大家,

我從一些解決方案中做了一個混合:

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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM