2011-02-17 2 views
0

저는 Google지도를 사용하여 도시 간 거리를 계산하고 있습니다. 몇 가지 기본 계산에는 거리 값을 사용해야합니다. 거리는 "앵글로 아메리칸"형식 (1,234.00)이어야하지만 미터법이 적용됩니다.필드에서 점과 쉼표를 바꾸고 그 값을 사용하여 jquery를 사용하여 다른 필드를 자동으로 채 웁니다.

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"또는 "이름의 부족 : - 그래서, 마드리드 Google지도 대답 베를린 쿼리는이 두 가지 중 하나가 될 것입니다 "속성.

내가 달성하고자하는 것은 :

1)이 Google지도 거리 값을 변환은 천 단위 구분없이 "영미"형식 (2,320km) 또는 (더 나은) 형식은 소수 구분 기호로 점을 (사용하는 것이있는 2320.1 km)

2) 거리

나는 모든 웹을 통해 검색라는 텍스트 필드를 채우기 위해 그 필터링 된 값을 사용하지만 정확한 답을 찾지 못했습니다.

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

그것은 나에게 자동 채우기 부분에 약간의 도움이,하지만 난이 Google지도 코드와 함께 작동 할 수 없습니다 :이 포스팅은 가장 도움이되었다.) (당신이 자바 스크립트 문자열 .replace하여이 작업을 수행 할 수 있습니다, 일반적으로

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

답변

1

이 값을 잡아하려면 여기에 내 현재 코드입니다 . 이 경우 스왑을 수행하기 때문에 조금 까다 롭습니다. 마침표는 쉼표, 쉼표는 마침표입니다. 이것은 중간 값을 사용해야 함을 의미합니다. 밑줄을 사용하는 작업 예제는 다음과 같습니다.

<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> 
+0

아니요. 사실 jstcache = 7 또는 jstcache = 23 값을 얻고 싶습니다. 또는 "jscontent = .."값을 사용하십시오. 그것이 문제의 하나인데, Google지도의 총 거리는 이런 식으로 인쇄됩니다. 그런 값을 가져 오는 가장 좋은 방법은 무엇인지 모르겠습니다. – Marco

+0

@Marco, 나는 방금'='로 만들었다. 실렉터는'span'에 대해서'jstcache' 애트리뷰트가'7' - * *'jstcache' 엘리먼트가 아닌 것에주의하십시오. –

+0

작동하지 않습니다. 전체 페이지 코드를 아래에 붙여 넣었습니다. 아마도 다른 것이 없습니다. – Marco

1

기능 :

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

지역화 :

<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> 
+1

'val = val.replace ("_", ",");'를 남겨두고 첫 번째 바꾸기에서''_'' ''더 좋은 '형식을 얻기 위해서''''를 사용하십시오. – DKSan

+0

맞습니다. 나는 "더 나은"것이 내 머리 속에 있었는지를 바꿨다. 나는 어떤 이유로 쉼표가 필요하다고 생각했다. :) –

+0

이 코드도 작동하지 않습니다. 아래에 "전체"코드를 붙여 넣었습니다. – Marco

관련 문제