2015-01-05 56 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

匹配'remove'將不起作用。通常刪除不需要參數(或可以選擇一個選項)。它刪除了左邊的表達式(例如'$('#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(); 
    } 

}