【问题标题】:How to get value from form field and concatenate with url in Jquery如何从表单字段中获取值并与 Jquery 中的 url 连接
【发布时间】:2016-01-30 18:28:21
【问题描述】:

我今天第一次使用 jquery,需要帮助解决这个问题。对于那里的所有专业人士来说,这个问题可能听起来很愚蠢,但我正在努力。

我在 HTML 页面中有一个表单域,并且想从表单域中获取值并与 url 连接。

<form id="form-container" class="form-container">
        <label for="street">Street: </label><input type="text" id="street" value="">
        <label for="city">City: </label><input type="text" id="city" value="">
        <button id="submit-btn">Submit</button>
    </form>

这是我要添加街道和城市值的标签。

<img class="bgimg" src="https://maps.googleapis.com/maps/api/streetview?size=600x300&location=White House, Washington DC&key=API_KEY">
</body>

基本上,src 中的位置字段将来自表单字段。所以是这样的:

<img class="bgimg" src="https://maps.googleapis.com/maps/api/streetview?size=600x300&location=" + $('#street').val() + "," + $('#city').val()&key=API_KEY">
    </body>

但不幸的是,这不起作用,需要一些指针来解决这个问题。

更新:我正在尝试这种方法来实现这一点但不起作用

$body.append('<img class="bgimg" src="https://maps.googleapis.com/maps/api/streetview?size=600x300&location=" + $('#street').val() + " " + $('#city').val() + "&key=ABC">'

【问题讨论】:

  • 您好像缺少引号
  • 我可以在 html 标签中添加 javascript 变量吗?好像我需要在单独的 jquery 文件中定义它。带引号也不起作用:/
  • 您可以在某些地方,如内联点击事件处理程序,或者如果您使用模板引擎或框架,如 angular.js,通常使用特殊语法。我会尝试发布答案。
  • 我正在尝试这个$body.append('&lt;img class="bgimg" src="https://maps.googleapis.com/maps/api/streetview?size=600x300&amp;location=" + $('#street').val() + " " + $('#city').val()&amp;key=,但仍然无法在 javascript 文件中工作

标签: javascript jquery ajax formfield


【解决方案1】:

你可以这样做:

var url = "https://maps.googleapis.com/maps/api/streetview?size=600x300&location={street},{city}&key=API_KEY";

$("#submit-btn").on('click', function() {
  var street = $('#street').val();
  var city = $('#city').val();
  var finalURL = url.replace('{street}', street).replace('{city}', city);
  $('.bgimg').attr('src',finalURL);
});

请注意,您不应该在HTML 中设置src 属性,否则浏览器将触发对无效源的请求。

还要确保验证用户输入并且您拥有 jQuery。

【讨论】:

  • @python 从外观上看不出来...$body.append.. 我不知道$body 是否是一个jQuery 对象(如果不是,它应该是$('body') ...或者您如何执行此行...是否在事件处理程序等中
【解决方案2】:

您应该在表单提交时修改图像的 src。 此线程可能重复(您将在此处找到详细答案):Changing the image source using jQuery

比如:

function setSrc(){
$('.bgimg').prop('src','https://maps.googleapis.com/maps/api/streetview?size=600x300&location=' + $('#street').val() + ',' + $('#city').val() + '&key=API_KEY');
}

<form id="form-container" class="form-container" onSubmit="setSrc();">

【讨论】:

  • 知道这种方法有什么问题$body.append('&lt;img class="bgimg" src="https://maps.googleapis.com/maps/api/streetview?size=600x300&amp;location=" + $('#street').val() + " " + $('#city').val()&amp;key=
【解决方案3】:

如果你需要使用 jQuery 来做,那么设置 img 标签的 'src' 属性的值是这样的:

$('.bgimg').prop('src', '"https://maps.googleapis.com/maps/api/streetview?size=600x300&location=' + $('#street').val() + ',' + $('#city').val() + '&key=API_KEY')

【讨论】:

  • 任何想法这种方法有什么问题$body.append('&lt;img class="bgimg" src="https://maps.googleapis.com/maps/api/streetview?size=600x300&amp;location=" + $('#street').val() + " " + $('#city').val()&amp;key=
  • 我猜你只是对 ' 和 " 在 js $body.append('&lt;img class="bgimg" src="https://maps.googleapis.com/maps/api/streetview?size=600x300&amp;location=' + $('#street').val() + ', ' + $('#city').val() + '&amp;key=API_KEY');987654323@ 中的工作方式感到困惑
  • 还有一个错误...你忘了最后关闭 标签...$('body').append('&lt;img class="bgimg" src="https://maps.googleapis.com/maps/api/streetview?size=600x300&amp;location=' + $('#street').val() + ', ' + $('#city').val() + '&amp;key=API_KEY" /&gt;'); 现在它正在工作
  • 不,在我的程序中标签是关闭的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-09
  • 2012-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多