2010-06-14 1 views
4

기본값이 http:// 인 텍스트 영역이 있습니다. 이제 사용자가 URL에 붙여 넣을 때 (대부분의 사람들처럼 자신이하는 일을 모르는 경우) http://http://www.google.com과 같이 나타납니다. 나는 당신이 http://http://을 얻 자마자 JavaScript를 통해 그것을 제거하는 사이트를 보았습니다.jQuery를 사용하여 입력에서 double http : //를 제거하십시오.

JavaScript에 익숙하지 않아 누구나 나를 도와 줄 수 있습니까?

포커스가있는 필드 만 지우고 싶지 않습니다. 간단 유지하고 replace 기능을 사용하여

+0

Ajax는 완전히 다른 이야기입니다. 그것은 "단지"JavaScript입니다. 이에 따라 귀하의 질문에 대해 다시 말하였습니다. – BalusC

+0

함수를 호출 할 때 더 많은 정보를 포함하도록 내 대답을 편집했습니다. – marcgg

+0

Ctrl + V 붙여 넣기를 수행하는 답변을 추가했습니다. – jAndy

답변

1

수 속임수를 써라.

jQuery(document).ready(function(){ 

    jQuery('#idofurtextfield').blur(function(){ 

     jQuery(this).val(jQuery(this).val().replace(/(http:\/\/)\1/, '$1')); 

    }); 

}); 
+0

꿈처럼 작동했습니다 !!! 덕분에 – loo

3

:

var url = "http://http://google.com"; 
url = url.replace("http://http://","http://"); 

...이 기본적으로 "두 번째로 첫 번째 문자열 "http://http://"를 대체 할 http://"

당신은 때를 호출해야합니다. 필드의 내용이 변경됩니다. 예를 들어 jQuery를 사용하는 경우 : jQuery를 사용하지 않는 경우 (예 : jQuery를 사용하지 않는 경우) :

이) :

document.getElementById("myfield").onChange = function(){ 
    var val=document.getElementById("myfield").value; 
    document.getElementById("myfield").value = value.replace("http://http://","http://"); 
} 

관련없는 있지만, 언급 할 가치 : 이것은 AJAX 아니라, 간단한 자바 스크립트입니다. 아약스는 XMLHTTP 객체를 사용하여 서버와의 비동기 통신을 할 때 사용되는 용어입니다

아약스 (비동기 자바 스크립트와 XML의 약어)가있는 클라이언트 - 사용 상호 웹 개발 기술의 그룹 측면에서 대화 형 웹 응용 프로그램을 만듭니다. Ajax를 사용하면 웹 응용 프로그램 을 의 백그라운드에서 비동기 적으로 검색 할 수 있습니다. 및 기존 페이지의 동작을 방해하지 않습니다.

(via)

항상
+0

질문은 언제입니까? – jAndy

+0

@ jandy : 질문에서 얻지는 못했지만 여기에 편집이 있습니다. – marcgg

1

좋은이 없음 정규식 옵션을 가지고 (그 귀중한 마이크로 초 절약!) : 당신은 그냥 간단한 자바 스크립트 그렇게 Ajax를 필요가 없습니다

var url = "http://http://google.com"; 
url = url.substring(url.lastIndexOf("http://")); 

// -> "http://google.com" 
2

전혀 아약스가 그런 종류의 마술을하지 않습니다.

이 그것을 할 것입니다 : 이미 존재하는 경우

$(function(){ 
    $('textarea').bind('keydown', function(e){ 
    var $this = $(this); 
    if(e.which === 86 && e.ctrlKey){ 
     setTimeout(function(){ 
      $this.val($this.val().replace(/http:\/\/http:\/\//,"http://")); 
     }, 1); 
    } 
    }); 
});​ 

ctrl+vhttp://을 대체합니다. 사용자가 컨텍스트 메뉴를 붙여 붙여 넣을 경우 change 이벤트에서 동일한 루틴을 호출 할 수도 있습니다.

+0

아하, 꽤 멋지다! Internet Explorer에서 작동합니까? e.ctrlKey에 대해 확실하지 않습니다. – marcgg

+0

e.ctrlKey는 jQuery를 통해 정규화되어야합니다. 그렇습니다. 크로스 브라우저를 사용해야합니다. – jAndy

+0

jQuery가 없어도 사용할 수 있습니까? – marcgg