用表单输入追加URL

Append URL with form input

本文关键字:URL 追加 输入 表单      更新时间:2023-09-26

这是我第一次尝试用javascript写任何东西,虽然这确实是预期的,我相信它可以做得更简单。并不是说这个脚本非常有用,它只是学习新东西的一个练习。我也尽量不使用邪恶的文档写。

那么更优雅的方法是什么呢?

<html>
<body>
<input name="abc" type="text" id="foo">
<button onclick="AddInputValue()">Submit</button>
<p id="displayURL"></p>
<script>
function AddInputValue(){
var domain = "http://site.com?abc="
var qstring = document.getElementById("foo").value;
document.getElementById("displayURL").innerHTML=domain + qstring;
}
</script>
</body>
</html>

如果您使用 jQuery :

<html>
    <!-- Include jQuery! -->
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <body>
        <form id="form1">
            <input name="abc" type="text" id="foo">
            <button type="submit">Submit</button>
        </form>
        <p id="displayURL"></p>
        <script>
            $(document).ready(function () {
                var form = document.getElementById("form1");
                $(form).submit(function () {
                    var domain = "http://site.com/?";
                    var data = $(this).serialize();
                    document.getElementById("displayURL").innerHTML = domain + data;
                    return false;
                });
            });
        </script>
    </body>
</html>

您甚至可以添加更多的表单元素,元素的name将匹配查询字符串。http://jsfiddle.net/3muu6/

只是张贴在http://jsfiddle.net/3muu6/的例子。

增加了输入的数量。这基本上就是Google Analytics URL Builder所做的,也是这个练习的灵感来源。

<html>
<head>
<!-- Include jQuery! -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
</head>
<body>
 <form id="form1">
    <input name="abc" type="text" id="foo" /><br />
    <input name="def" type="text" id="bar" /><br />
    <input name="ghi" type="text" id="tar" /><br />
    <input name="jkl" type="text" id="boo" /><br />
<button type="submit">Submit</button>
</form>
<p id="displayURL"></p>

<script>
$(document).ready(function () {
    var form = document.getElementById("form1");
    $(form).submit(function () {
        var domain = "http://example.com/?";
        var data = $(this).serialize();
        document.getElementById("displayURL").innerHTML = domain + data;
        return false;
    });
}); 
</script>
</body></html>

现在如何省略查询字符串对,当用户留下一个输入值空白?嗯。