【问题标题】:Posting static form with no input fields发布没有输入字段的静态表单
【发布时间】:2019-08-26 13:49:33
【问题描述】:

我对 Web 开发非常陌生,对提交表单数据感到困惑。我知道在我的 html 中使用标签并用 a 包装时如何提交和检索数据,但在这种情况下,我有一个静态 html 页面,在表格中显示数据,用户可以在其中编辑和修改表格输入。当所有字段都不是输入类型时,如何在此表单上发布值?

【问题讨论】:

  • 您可以在运行时使用 javascript 创建隐藏的输入字段并将它们添加到表单元素,或使用 ajax
  • 您可以使用 Ajax 向服务器发送数据。我只是好奇,如果您没有“输入”元素,您的数据是否存储?您可以从 JS 访问这些数据吗?如果可以的话,发出 ajax 请求(或者如果你的目标是现代浏览器,甚至使用 fetch api)应该很容易实现。

标签: javascript c# web


【解决方案1】:

如果您正在动态生成数据,您可以通过 javascript 发布表单数据。 JQuery 具有简化此过程的 Ajax 功能。例如,

    function post_form_data() {
        var data = {
            data1: "something,
            data2: "something else"
        };
        var url = "https://someurl.com/api/v1/etc";

        $.ajax({
            type: "POST",
            url: url,
            data: data,
            success: function() {
               // do something, like transition to 
               // a different page or something
            },
       });
    }

只要您想发帖,请调用 post_form_data()。在实践中,您可以在函数参数中包含表单数据或从其他来源提取它们。

要查看所有详细的 ajax,请阅读jQuery Ajax Documentation

【讨论】:

    【解决方案2】:

    点击 javascript 按钮,您可以创建一个表单并提交它:

    let form = document.createElement('form');
    form.action = 'http://yourdomain/youraction';
    form.method = 'POST';
    
    form.innerHTML = '<input name="inputs" value="test">';
    
    // the form must be in the document to submit it
    document.body.append(form);
    
    form.submit();
    

    这里不是输入值测试,而是指定一个 JSON 值。

    这会将表单发布到提供的 URL。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2016-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多