2009-07-23 6 views
2

Google 툴바의 자동 완성 기능은 지난 몇 년 동안 웹 개발의 실존에 대한 단점이되었습니다. 저는 개발자가 컨트롤에 변경 이벤트를 발생시키지 않았기 때문에 변경 사항을 확인하기 위해 타이머 컨트롤을 만들려고 항상 노력했습니다. 컨트롤이 중첩 된 중계기 안에 묻혀있을 때 더욱 복잡해지고, UpdatePanel에 연결하면 더욱 복잡해집니다.Google 툴바 자동 완성 사용 안함

누구나 필드 이름을 insignifcant로 변경하지 않고도 Google 툴바가 양식 입력란을 채우지 못하게 할 수 있습니까? (참고 : '국가'드롭 다운에 대해서는 작동하지 않으며 필드 값을 확인하기까지도 포함됩니다).

Google 직원이 있어야 할만큼 똑똑하기 때문에 이것은 몹시 바보 같은 감시였습니다.

업데이트 : 해결책을 찾고있는 사람들을 위해. 지금까지 내가 ASP 컨트롤을 "Timer"로 사용하고 UpdatePanel에 대한 트리거로이 컨트롤을 설정했다는 것을 알았습니다. 루프를 통해 변경된 값을 확인하는 데 도움이됩니다.

JavaScript 만 사용하거나 다른 프레임 워크를 사용하는 경우 다음 기능을 사용하여 최상의 상태로 작동한다는 것을 알았습니다 (상태 및 우편 변경 사항을 모니터링하려고했습니다.) 드롭 다운 목록에서 마우스를 가져 가면 포커스가 필요합니다.

그냥 호기심
function MonitorChanges(sStateDropdownID, sZipCodeID, sHiddenStateFieldId, sHiddenZipFieldId, bDoPostback) { 
     var state = $('#' + sStateDropdownID).val(); 
     var zip = $('#' + sZipCodeID).val(); 
     var hiddenstate = $('#' + sHiddenStateFieldId).val(); 
     var hiddenzip = $('#' + sHiddenZipFieldId).val(); 
     $('#' + sHiddenStateFieldId).val(state); 
     $('#' + sHiddenZipFieldId).val(zip); 

     var compareString = state + zip; 
     var compareHiddenString = hiddenstate + hiddenzip; 

     var focusElement = getElementWithFocus(); 
     if (compareString != compareHiddenString && isShippingZip(zip)) { 
      bDoPostback = true 
     } 

     if (parseInt(focusElement.id.search('drpState')) == -1 && parseInt(focusElement.id.search('txtZip')) == -1 && bDoPostback) { bDoPostback = false; __doPostBack(sStateDropdownID, ''); } 

     var f = function() { MonitorChanges(sStateDropdownID, sZipCodeID, sHiddenStateFieldId, sHiddenZipFieldId, bDoPostback); } 
     setTimeout(f, 1000); 
    } 
+1

자동 완성을 사용 중지하려는 이유를 말씀해 주시겠습니까? –

+0

관련된 모든 양식 필드에서 JavaScript 이벤트 캡처를 단순화하기 때문에이 기능을 비활성화하려고합니다. –

+0

나는 여기에서 순진하지 않기를 바란다. 대신 양식을 재설정해도 괜찮습니까? – shahkalpesh

답변

5

recent post에 따르면 Google 개발자가 autocomplete="off" 속성을 사용하면 IE와 Firefox에서 Google 툴바 자동 완성 기능을 사용할 수 없게됩니다. 이 속성은 개별 <input> 태그 <form> 태그에 적용되지되어야합니다 :이 즉시 수정 아니지만

<form method="post" action="http://example.com" autocomplete="off"> 
<!-- ... --> 
</form> 

를, 그것은 가장 신뢰할 수있는 솔루션이 가능 아마 -가 될 때까지 기다릴 수있는 경우 Google 툴바의 다음 반복.

+1

나는 당신의 대답을 받아 들일 것이지만, 이것은 현재 릴리스의 도구 모음이 아니라 곧 출시 될 것이라고 언급하고 있습니다. 아직도 S.O.L. 업그레이드하지 않는 사람이라면 궁극적으로 그만한 IE6 효과를 내야합니다. 벙어리 이동 구글, 벙어리 이동 ... –

+0

전적으로 당신의 정서에 동의합니다. 모든 사람들의 Google은 이것이 잘못된 설계 결정이 무엇인지 이해해야합니다. –

0

당신이 장애인에 AutoCompleteType을 설정하면, 자동 완성은 여전히 ​​화재 않습니다, 그것은 selectedIndex의)를 변경?

<asp:TextBox ID="textBox1" runat="server" AutoCompleteType="Disabled" /> 
+0

AutoComplete = "Off"로 설정하고 AutoCompleteType = "None"으로 설정해도 관계가 없으므로 개발자는 도구 모음에서 이러한 속성을 무시한다는 사실을 더욱 좌절시킬 수 있습니다. –

0

작동 여부는 확실하지 않지만 가능한 해결 방법으로 생각납니다.

span 태그를 사용하여 키워드의 라벨을 구분 해보십시오.

<label for="firstName">Fi<span>rs</span>t N<span>am</span>e:</label> 
<input id="firstName" name="firstName"> 

또한 Google은 Firefox에서 autocomplete="false"을 지원할 예정입니다. 아니 깨끗한 IE의 솔루션, 아직, 그래도.

+0

여전히 드롭 다운에 대해 작동하지 않습니다. 실제로 드롭 다운 값을 확인합니다. 주 이름 앞에 마침표 (.)를 붙이면 그걸 막는 것 같았습니다.하지만 이것은 총 해킹이므로 그렇게 할 필요가 없습니다. –

1

나는 한때 파이어 폭스에서 자동 채우기에 문제가 있습니다. 나는 그것을 방지하기 위해 이것을했다.

<div style="display:none"> 
    <input type="text" name="user" /> 
    <input type="password" name="password" /> 
</div> 

<input type="text" name="user" /> 
<input type="password" name="password" /> 

Google 자동 완성에서도 작동하는지 잘 모름