2015-01-05 5 views
1

조건에 따라 트리거 된 필수 필드에 필수 별표를 추가하는 JQuery 함수 작성. 그리고이 .append 문은 효과가있을 것이라고 생각했지만 그렇지 않습니다.JQuery : 필수 필드에 필수 별표 추가/제거

JQuery와 :

 function checkRequiredField(){ 
       var someId = $('#Id').val(); 
       if (someId == 106587){   //value to trigger 
        $('#someNumberField').prop('required',true); 
    THIS LINE --> $('#someNumberField-label').append('<span class="required-indicator">*</span>'); 
       }else{ 
        $('#someNumberField').removeAttr('required'); 
        $('#someNumberField-label').remove('<span class="required-indicator">*</span>'); 
} 

HTML : 다음 작업 바이올린

<div class="form-group"> 
    <label id="SomeId-label" class="col-sm-2 control-label" for="SomeId">SomeId<span class="required-indicator">*</span></label> 
    <div class="col-sm-5"> 
     <g:select name="SomeId" noSelection="['null':'']" from=".." value="${106587}" class="form-control" optionKey="id" required="" aria-labelledby="SomeId-label" onchange="checkRequiredField()"/> 
    </div> 
</div> 


<div class="form-group"> 
    <div class="col-sm-2"> 
     <label id="someNumberField-label" class="toplabel" for="someNumberField">Number #</label> 
     <g:textField name="someNumberField" id="someNumberField" value="${aphis104Instance.someNumberField}" class="form-control" aria-labelledby="someNumberField-label"/> 
    </div> 
</div> 
    } 
+1

전체 코드 예제를 게시 할 수 있습니까? 정확히 작동하지 않는 것은 무엇입니까? 콘솔에 오류가 있는지 확인 했습니까? – j08691

+0

일치하는 '제거'가 작동하지 않습니다. 제거는 일반적으로 매개 변수를 사용하지 않으며 선택기를 사용할 수 있습니다. 왼쪽의 표현식을 제거합니다 (예 :'$ ('# someNumberField-label')') –

+0

나는 희망하는 라인을 표시했습니다. 콘솔은 오류를 반환하지 않습니다. – ry1633

답변

1

는 다음과 같이 그것을 시도, 그것은 작동한다.

function checkRequiredField() { 
    var someId = $('#Id').val(); 
    if (someId == 106587) { 
     $('#someNumberField').prop('required',true); 
     // make sure its getting here... alert("test") 
     $('#someNumberField-label').append(
      $("<span>", {"class": "required-indicator"}).text("*") 
     ); 
    } else { 
     $('#someNumberField').removeAttr('required'); 
     $('#someNumberField-label span').remove(); 
    } 
} 
+0

끝까지 더 문제를 해결해야할까요? 이것은 나를 위해서도 아닙니다 ... – ry1633

+0

안녕하세요 미안 해요 편집 해 주셔서 감사합니다 대신에 스팬이 아닌 것을 알려주세요. – vbms

+0

내가 106587이 (Firebug에서 이것을 확인한) 트리거하기로되어있는 선택 옵션을 눌렀을 때, 별표는 필드에 나타나지 않을 것입니다. – ry1633

0

: http://jsfiddle.net/kLaaq0dc/2/

function checkRequiredField(){ 
      var someId = $('#Id').val(); 

      if (someId == 106587){   
       $('#someNumberField').prop('required',true); 
    $('#someNumberField-label').append('<span class="required-indicator">*</span>'); 
      }else{ 
       $('#someNumberField').removeAttr('required'); 
       $('#someNumberField-label span').remove(); 
    } 

}