提交没有多余的装饰

时间:2014-07-21 19:45:33

标签: html forms checkbox

作为HTML方式的白痴我只是在w3学校的帮助下搞乱了反复试验。我正在尝试与看似CGI脚本的接口进行交互,并将一个将所有信息发送到服务器的URL组合在一起。我已经知道这需要用表单完成,并且除了多个条目之外我还需要大部分信息。 例如:

<form name="send" action="url" method="get" target="_blank">
       <input type="checkbox" name="foo" value="lorem"/>
       <input type="checkbox" name="foo" value="ipsum"/>
       <input type="submit" value="submit">
</form>

根据我的理解和我可以拼凑的内容,如果勾选了两个复选框,它将生成一个网址。 url?foo=lorem&foo=ipsum 我希望它输出的是一个像“url?foo = lorem,ipsum”的网址 这是用简单代码实现的吗? Java&amp;仅限HTML,不希望添加PHP或其他一些服务器端脚本语言,大多数是浏览器可以完成的所有工作。

2 个答案:

答案 0 :(得分:0)

是的,这可以使用jQuery完成。

  1. 通过在head标签中添加链接标记来安装jQuery库。

  2. 获取每个复选框的值,并使用if / else语句。


  3. <script>
        var var1 = $('#box1').val();
        var var2 = $('#box2').val();
        var link1 = null;
        var link2 = null;
        if (var1 == null){}else{link1 = "lorem";};
        if (var2 == null){}else{link2 = "ipsum";};
    </script>
    

    然后只需将链接变量完全按照您希望的方式连接到字符串。

    要使上述工作正常,您必须在输入标签上设置id =“box1”和id =“box2”。

答案 1 :(得分:0)

实际上,另一种方法是使用jQuery的序列化。

它将采用您想要的任何元素(即表单中的所有复选框)并将它们序列化为一个字符串(包括它们的名称和值),您可以稍后解析(解码)它们。

$('#formSubmit').on("click", initEntrySubmission); //when the form's submit button is clicked, initiate the function "initEntrySubmission"

function initEntrySubmission(e) {
        e.preventDefault();  //prevent the form from immediately submitting
        var serializedInputs = $("#protocolForm :input").serialize(); //serialize the input fields in your form with id="protocolForm", and assign its value to a variable serializedInputs
        $('#serialInput').val(serializedProtocol); //your hidden form named serialInput
        $('form#entryForm').submit(); //submit the form after everything is done
    }

但最终,你的名字=“......”参数在复选框之间应该不同,否则你会在下游遇到很多问题。