【问题标题】:Is there a way of sending form values without inputs有没有一种方法可以在没有输入的情况下发送表单值
【发布时间】:2011-09-30 13:38:32
【问题描述】:

假设我有以下表格:

<form action="sendMessage.php" method="post">
    <label>Subject</label><input type="text"></input>
    <label>Message</label><input type="text"></input>
    <input type="submit"></input>
</form>

如何在不为此创建另一个元素的情况下发送另一个值,如主题(预定义)?是否有可能或者我必须使用display: none;制作输入元素并设置其样式

答案可以包含 html、javascript 或 jquery 代码。

【问题讨论】:

标签: javascript jquery html forms


【解决方案1】:

您可以在提交表单时选择使用 JQuery 的 ajax 方法:

<form action="process_form">
    <button type="submit"></button>
</form>

<script>
$(form).submit(function(){
    var formdata = $(this).serialize()+"&var1=12&var2=24";

    $.ajax(function(){
        url: 'http://example.com/process_form'
        data: formdata,
        success: function(data){

            // do something nice here

        }
    });
});
</script>

这只是将表单变量添加到表单数据 url 字符串中

【讨论】:

    【解决方案2】:

    我通常看到这样做的方式是:&lt;input type="hidden" name="field_name" value="myValue" /&gt;

    【讨论】:

      【解决方案3】:
      <input type="hidden" name="topic" value="My Topic" />
      

      【讨论】:

        【解决方案4】:

        使用:

        &lt;input type='hidden' name='hidden_value' value='hidden' /&gt;

        在您的表单中,您可以访问$_GET['hidden_value']$_POST['hidden_value'],具体取决于您的表单方法。变量的值为hidden

        【讨论】:

          【解决方案5】:

          使用隐藏的输入元素:

          <input type = "hidden" name = "topic" value = "something" />
          

          【讨论】:

          • 这很简单,很好!
          • 顺便说一句,如果您希望从服务器传递值以供客户端使用(例如 JS),您可以通过使用 i 元素来避免创建表单输入元素data-* 属性,例如。 &lt;i id="tracking-id" data-value="UA-XXXXX-X"&gt;&lt;/i&gt;。你可以display: none这个元素,但它不应该影响用户界面。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-24
          • 1970-01-01
          • 2021-01-22
          相关资源
          最近更新 更多