使用Javascript或jquery从表单字段构建URL
我有一个简单的问题,我似乎无法找到适合其他地方的解决方案。 我正在尝试使用Javascript或jquery创建URL构建器表单。 基本上,它将获取两个表单字段的值,将它们添加到预设URL并在提交时显示在第三个字段上。
生成的URL可能是http://www.mydomain.com/index.php?variable1=12&variable2=56
现在,这不是表单的“动作”,应用程序无法读取URL(以获取变量),因此必须在页面中完成。
生成的URL将显示在“url”命名字段中。
以下是表单的示例:
提前致谢! 特洛伊
jQuery有serialize来构建查询字符串值
所以如果你想做整个表格:
alert($("#form1").serialize());
如果您只想做几个字段,那么只需让选择器选择这些字段即可。
alert($("#variable1, #variable2").serialize());
怎么样……
var inputs = $('#form1').find('input[type=text]').not('#url'); var str = "http://www.base.url/path/file.ext?" inputs.each(function (i, item) { str += encodeURIComponent(item.name) + "=" + encodeURIComponent(item.value) + "&"; }); $('#url').val(str);
这将在form1
中选择type='text'
所有 ,并将它们连接成一个查询字符串。 请参见
encodeURIComponent()
。
Orrrr …..你可以使用.serialize()
。 谢谢@prodigitalson。
像下面这样的东西应该工作:
var partFields = '#variable1,#variable2'; $(partFields).change(function(){ var url = 'static/url/to/file.php?'; $('#url').val(url+$(partFields).serialize()); });
但是,除非您希望人们能够覆盖URL,否则您可能希望使用隐藏字段和rgeular元素来显示和提交URL值,其中cse您具有以下内容:
var partFields = '#variable1,#variable2'; $(partFields).change(function(){ var url = 'static/url/to/file.php?'; var urlValue = url+$(partFields).serialize(); $('#url-display').text(urlValue); // set the displaying element $('#url').val(urlValue); // set the hidden input value });