【问题标题】:How to add URL data (variables) when submiting a form?提交表单时如何添加 URL 数据(变量)?
【发布时间】:2014-03-07 20:00:26
【问题描述】:

我的网页上有这个表格:

<form action="my_target_file.py">
    <!-- some input textboxes here -->
    <input type="submit" value="Go!" />
</form>

提交表单后,我可以轻松访问这些值(文本框和其他控件中的值)。但我想向my_target_file.py URL 添加一些数据。例如,使用 Javascript,我可以检查是否有复选框被选中。如果选中,那么我想在提交表单时调用my_target_file.py?checked=1,以及用户在文本框中输入的所有值。

我当前的解决方案是有一个隐藏的文本框,例如,在选中复选框时使用 Javascript 填充该文本框。然后我从my_target_file.py 中读取了隐藏的文本框,但这不是太干净。

我怎样才能做到这一点?

【问题讨论】:

    标签: javascript html forms post input


    【解决方案1】:

    只需将复选框命名为“已选中”并将其值设置为“1”——不需要 JavaScript。

    <input type="checkbox" name="checked" value="1" />
    

    当添加到您提供的表单代码中时,当且仅当用户选中该复选框时,上述复选框才会在现有查询字符串中添加查询字符串值checked=1

    根据您在下面的评论,您可以在这样的表单中附加隐藏字段:

    var box = document.createElement('input');
    box.type = 'hidden';
    box.value = '1';
    box.name = 'checked';
    form.appendChild(box);
    

    对您要存储的每个参数名称和值执行此操作,并将 form 替换为代表您的表单的 JavaScript 对象,例如 document.forms[0]document.getElementById("formid")

    【讨论】:

    • 感谢您的回答,但所有复选框的内容只是一个示例 :-(。在我的 HTML 文件中,我有一些由模板引擎打印的值,我想将它们传递给 @ 987654327@提交时。
    • @cdonts 您可以在 JavaScript 表单中附加具有适当名称和值的元素,然后在提交表单时这些元素将成为现有查询字符串的一部分。这对你有用,尽管这也比简单地使用一个隐藏字段并解析它和服务器端的普通查询字符串更复杂,就像你现在正在做的那样。
    • 但是你不觉得我目前的解决方案有点丑吗?我想我可能会喜欢你的解决方案,如何实现?
    • 这与我的预期不同,但我喜欢它。谢谢!
    猜你喜欢
    • 2014-01-22
    • 2021-10-01
    • 1970-01-01
    • 2013-08-13
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    • 2019-10-15
    • 2014-10-27
    相关资源
    最近更新 更多