有没有一种方法可以在没有输入框的情况下发送表单值?

14

假设我有以下表单:

<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代码。


使用jQuery在表单内创建隐藏的输入元素,参考http://api.jquery.com/jQuery/#creating-new-elements。 - Kumar
5个回答

31
使用一个隐藏的输入元素:
<input type = "hidden" name = "topic" value = "something" />

这很简单,不错! - William
另外,如果您想从服务器传递值仅供客户端使用(例如JS),则可以通过使用带有data-*属性的i元素来避免创建表单输入元素,例如<i id="tracking-id" data-value="UA-XXXXX-X"></i>。您可以将此元素设置为display: none,但它不应影响UI。 - aalaap

2
我通常见到的做法是:<input type="hidden" name="field_name" value="myValue" />

1
<input type="hidden" name="topic" value="My Topic" />

0

当提交表单时,您可以选择使用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 字符串中。

0

使用:

<input type='hidden' name='hidden_value' value='hidden' />

在您的表单中,根据您的表单方法,您将访问$_GET['hidden_value']$_POST['hidden_value']。变量的值将为hidden

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接