替换字段中的点和逗号,然后使用该值使用 jquery 自动填充另一个字段

发布于 2024-10-18 07:43:18 字数 1156 浏览 6 评论 0原文

我正在使用 Google 地图来计算城市之间的距离。我需要使用该距离值进行一些基本计算。距离必须采用“英美”格式 (1,234.00),但采用公制。因此,马德里 - 柏林查询的 Google 地图答案将是以下两个之一:

a) <span jscontent="distance['text']" jsdisplay="distance" jstcache="7">2.320,1 km</span>
b) <span jscontent="distance.text" jstcache="23">2.320,1 km</span>

请注意跨度“类”(jstcache 为 7 或 23)的差异以及缺少任何“id”或“名称”属性。

我想要完成的是:

1)将这些Google Maps距离值转换为“Angloamerican”格式(2,320公里)或(甚至更好)没有千位分隔符的格式,该格式仅使用点作为小数分隔符(2320.1公里)

2)使用过滤后的值值来填充名为距离的文本字段

我在整个网络上进行了搜索,但没有找到确切的答案。这篇文章是最有帮助的:

用表单提交上的文本字段的值填充隐藏的表单元素值(jQuery)

它对自动填充部分有一些帮助,但我不能让它与这个谷歌地图代码。这是我当前的代码:

<head>
...
<script type="text/javascript">
function submitMyForm(){
$('#distance').val($('jstcache^=7').val());
$('#Googlemap').submit();
}
</script>
...
</head>

<body>
...
<form id="myform">
<input type="text" id="distance" name="distance" value="" />
</form>
...
</body>

I'm using Google Maps to calculate distance between cities. I need to use that distance value for some basic calculations. Distance has to be in "Angloamerican" format (1,234.00) but in metric system. So, Google Maps answer for Madrid - Berlin query will be one of these two:

a) <span jscontent="distance['text']" jsdisplay="distance" jstcache="7">2.320,1 km</span>
b) <span jscontent="distance.text" jstcache="23">2.320,1 km</span>

Please notice the differences in span "classes" (jstcache is 7 or 23) and lack of any "id" or "name" attributes.

What I want to accomplish is:

1) Convert these Google Maps distance values to "Angloamerican" format (2,320 km) or (even better) format without thousands separator which would only use dots as decimal separator (2320.1 km)

2) Use that filtered value to populate a text field called distance

I searched all over the web, but didn't find the exact answer. This post was the most helpful:

Populate hidden form element value with the value of a text field on form submit (jQuery)

It helped me a bit with the auto-populate part, but I can't make it work in combination with this Google Maps code. Here is my current code:

<head>
...
<script type="text/javascript">
function submitMyForm(){
$('#distance').val($('jstcache^=7').val());
$('#Googlemap').submit();
}
</script>
...
</head>

<body>
...
<form id="myform">
<input type="text" id="distance" name="distance" value="" />
</form>
...
</body>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

仅冇旳回忆 2024-10-25 07:43:18

通常,您可以使用 javascript string .replace() 函数来完成此操作。在这种情况下,这有点棘手,因为你正在做交换:句号换逗号,逗号换句号。这意味着您必须使用中间值。使用下划线的工作示例如下所示:

<script type="text/javascript">
function submitMyForm(){
    var val = $('[jstcache=7]').text(); // get text content of <span jstcache="7">

    // Replace using regex instead of strings, to catch more than the first match
    val = val.replace(/\./g, "_");
    val = val.replace(/,/g, ".");
    val = val.replace(/_/g, ",");

    $('#distance').val(val);
    $('#Googlemap').submit();
}
</script>

Generally, you can do this with the javascript string .replace() function. In this case, it's a little trickier because you're doing a swap: periods for commas, commas for periods. This means you have to use an intermediate value. A working example using underscores would be something like this:

<script type="text/javascript">
function submitMyForm(){
    var val = $('[jstcache=7]').text(); // get text content of <span jstcache="7">

    // Replace using regex instead of strings, to catch more than the first match
    val = val.replace(/\./g, "_");
    val = val.replace(/,/g, ".");
    val = val.replace(/_/g, ",");

    $('#distance').val(val);
    $('#Googlemap').submit();
}
</script>
幸福还没到 2024-10-25 07:43:18

获取价值:

var dist = $('span[jstcache=7]').val();

本地化:

var parts = dist.split(',');
dist = parts[0].replace('.','') + '.' + parseInt(parts[1],10);

To grab the value:

var dist = $('span[jstcache=7]').val();

To localize:

var parts = dist.split(',');
dist = parts[0].replace('.','') + '.' + parseInt(parts[1],10);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文