나는 $.change()
이벤트를 가지고 있지만 제출 버튼을 누르면 변경 이벤트가 다시 발생합니다. 텍스트가 입력 텍스트 상자에 입력 될 때만 한 번만 발생합니다.
답변
편집 : 어떤 이유로 든 입력 버튼을 클릭하면 변경 이벤트가 호출됩니다. (Anthony에게 감사)
이 문제를 해결하는 방법은 단순히 제출 버튼을 선택하지 않는 것입니다.
당신은
$('input:text')
는 텍스트 필드를 선택하려면 시도 할 수 있습니다.
또는 당신은 제출 버튼 (들)을 제외한 모든 입력 요소를 선택하려면
$('input:not(:submit)')
을 할 수 있습니다.
편집 : 작동하지 않습니다 대신 <button>
사용. 여전히 input
필드로 계산되지만 값은 버튼에 표시된 텍스트와 별개입니다.
$('input').change(function(e){ alert("fire") });
은 해당 입력을 <input type="submit".../>
을 포함한 모든 입력 요소에 적용합니다. 만약 당신이 실제로 모든 단일 텍스트 입력 요소가 change 이벤트를 원한다면, 당신은``$ { 'input [type = text]' ''() {{{("fire"}}); id 나 클래스를 사용하는 것이 가장 좋습니다.
@ 마크,
당신은 그 자리에 있고 내가 도와 수 있다면 난 당신을 편집 할 것입니다. 언젠가 곧 ...
@ajowi,
는 버튼 입력입니다 제출합니다. 적어도 그들의 대부분은 다음과 같습니다
<input type="submit" />
그래서 마크, 그들이 버튼 텍스트로 무엇을하고 있는지 아니다, 그것은 버튼입니다 입력이, 그것을 클릭의 행위에 의해 변경되고 있음이다.
그의 솔루션은 훌륭했습니다.
$("input:text").change
그건 실제로 작동하지 않습니다, 공간은 "자손"을 의미합니다. 그러므로 선택자는 다른 입력의 자손 인 텍스트 입력을 찾고 있습니다. 공간을 제거하면 모두 좋습니다. –
TM이 옳았습니다. 이 코드는 작동하지 않았습니다. –
나는 놀랐다. 나는 이전에 그와 관련된 이슈들을 가지고 있었기 때문에 공간이 두 가지를 모두 커버 할 것이라고 긴장했다. 머리를 가져 주셔서 감사합니다. – Anthony
예. 작동하지 않는군요. 더 많은 정보를 얻기 위해 코드를 편집했습니다. –
이 근무했습니다. 내 부분에 일부 오타가 있습니다. –