2011-03-30 4 views
0
<label id="error_msg"></label> 

지금, 내가, 텍스트 상자를 작성하여 메시지를 경고 할, 내가 라벨이 비어 있거나 여부를 확인하시기 바랍니다. label이 비어 있으면 경고가 오지 않아야합니다. 확인 라벨 값 변경

나는 코드를 작성하지만, 어떻게 든

$("#error_msg").change(function() { 
    alert('hi'); 
}); 

도움말 사람을 작동하지 않습니다.

+0

, ALERT 오류 메시지에 계획하는 경우 html로 지금이

<td><input type="text" name="username" value="<?php echo $user['username']; ?>" size="40"/> <p class="error"></p> </td> 

처럼 간다, 당신은 라벨에게 잘못을 사용하고 방법 : span 태그 또는 ap 태그를 대신 사용해보십시오. 둘째, 아무 것도 변하지 않으므로 경보가 울리지 않습니다. 또는 레이블 텍스트를 변경하는 코드가 있습니까? – corroded

+0

@corroded : 다른 코드를 사용하여 레이블이 업데이트됩니다 –

+0

코드도 함께 표시하십시오. 실제로 라벨을 변경합니까? – corroded

답변

0

JQuery와 change() 방법은 특정 요소와 작동 label 그들 중 하나가 아닙니다을 사용하는 것이 좋습니다, 유효성을 검사하려는 경우 http://james.padolsey.com/javascript/monitoring-dom-properties/

에 jQuery 플러그인을 사용하기 쉬운을 확인하십시오.

http://api.jquery.com/change/

변경 이벤트시 그 값이 변화하는 요소로 전송된다. 이 이벤트는 입력 요소, 텍스트 영역 상자 및 선택 요소로 제한됩니다. 자바 스크립트를 통해 요소의 텍스트/값을 변경하는 경우 변경 이벤트가 트리거되지 않습니다

0

일 - 사용자 뭔가 (A 선택의 입력 텍스트, 또는 선택한 항목을 말할를 변경하는 경우에만 발생).

레이블의 텍스트를 설정하는 코드를 제어하는 ​​경우 텍스트를 설정하고 "이벤트 처리기"를 실행하는 사용자 지정 함수를 작성할 수 있으며 #error_msg의 텍스트를 변경할 때마다이 함수를 호출하십시오.

function set_error_msg(txt) 
{ 
    $('#error_msg').text(txt); 
    if(txt) 
    { 
     //There's text in the label - show your alert... 
    } 
} 

그러나 변경 (컨트롤의 외부의 코드) 다른 곳에서 오는 경우, 당신은 텍스트가 변경되었는지마다 XXX 초 확인 루프 시작해야합니다 -로 알려진 과정을 바쁜 기다림, 그리고 일반적으로 나쁜 일로 간주 ...

희망이 도움이!

1

나는 아직이 테스트 할 수 있었다, 그러나 당신은 당신이 수동으로 변경()

예 : 내가 생각

$("#error_msg").text("hello").change(); 
+0

이것이 제가 함께 갔던 해결책입니다. 나는 자바 스크립트로 라벨의 가치를 직접 업데이트하고 있었고,'change' 이벤트가 필요했다. 그리고 이것은 트릭을했다! – lhan

0

을 발사 할 수 없습니다 자바 스크립트를 사용하여 라벨을 변경하고 가정하지 않은의 검색어 유효성 검사 플러그인은 자동으로 오류 라벨을 변경합니다. 또한 나는 유효성 검사와 오류 배치를 위해 다음과 같은 스크립트를 가지고있다.

$('#account').validate({ 
    rules:{ 
      username: {required: true}, 
      password: {required: true}, 
      email: {required: true, email: true}, 
      fullname: {required: true}}, 
    messages: { 
      username: "Category name is required", 
      password: "Password is required", 
      fullname: "Full Name is required", 
      email: "Valid email is required" 
     },  
    errorPlacement: function(error, element){ 
      $(element).each(function(){ 
      $(this).parent('td').find('p.error').html(error); 
     }); 
}})  

그리고 당신은 한 가지에 대해 다음

errorPlacement: function(error, element){ 
      var errors = new Array(); 
      $(element).each(function(){ 
      $(this).parent('td').find('p.error').html(error); 
      errors.push(error); 
     }); 
     alert(errors.join(" ")); 
    }