使用angularjs-placeholder可以在老舊IE上,支援placeholder這個屬性,但是底層還是去實作foucs和blur這兩個event,並且用替換value的方式,達到模擬placeholder的效果。在一般使用上沒什麼太大問題,但是假設今天有一個form要submit的時候,會把placeholder的預設值也一起送出,這時就必須在submit之前,就將預設值清除,或者在取值得時候,暫時將欄位值清除,之後在還原。
使用placeholder.ensure取值:
ensure接受兩個參數:
1 |
|
在callback裡面取得值後,可使用record.back來回復placeholder的預設值。
1 | app.controller( "formController", [ "placeholder", "$element", function( placeholder, $form ){ |
若要直接submit可直接呼叫ensure,不須使用callback。
1 | placeholder.ensure( $form ) |
如果使用有支援placeholder的瀏覽器,還是會有ensure可以使用,但是將不會改變任何屬性,純粹只是個包裝過後的function。